오버로드는 기존에 정의 되어 있던걸 새롭게 정의하는거야 간단하게 말하면 + 가 덧셈이자나 그걸 오버로드 시켜서 나는 * 부호로 쓰겠다 하는게 오버로드 오버라이드는 + 라는 기호가 있다 라고 정의만 해놓고 A에서는 덧셈으로 쓸수있게 정의하고 B에서는 *으로 쓸수 있게 C에서는 / 으로 쓸수 있게 하는 방법이야 차이점은 초기에 정의를 하느냐 마느냐 차이 소스 코드로 설명하자면 오버로드는 함수 정의 할때 AAA() --> 1 AAA(string a) ->2 AAA(string a, string b) -> 3 AAA(string a, int b, double c) -> 4 이런식으로 같은 함수명인데 하는 역할은 다르게 하는거고 오버라이드는 AAA(); -> 정의 상속 A class AAA(){ 123; }; B..
public static class ExtMethod { public static string ConvertTen(this string s) { string returnStr = ""; for (int i = 0; i < 10; i++) { returnStr += s; } return returnStr; } } string 변수에서 '.' 찍고 난 다음 나오는 메서드에 추가하고 싶을때 씀 ex) string a = "a"; Console.WriteLine(a.ConvertTen()); 하면 a가 10개 찍혀서 나온다
C#에서 as는 강제형변환을 해주는 연산자이다. 강제형변환이라하면 그냥 (double)a; 라고 하면 되지 굳이 as 연산자를 사용할 필요가 있을성싶다. 보통 형변환이라고 하면 낮은형에서 높은형으로 변환하는 것을 말한다.(ex: int->double) 강제형변환이라고 하는 것은 높은형에서 낮은형으로 변환하거나 에러가 날 수 있는 형변환을 말한다.(ex:double->int , int->string) 일반적인 형식으로 강제형변환을 하게 되면 예외가 발생하게 된다. 하지만, as 연산자를 사용하게 되면, 불가능한 형변환(문제가 제기될 수 있는)시 예외가 발생하는 것이 아니라. Null값이 대입된다. ex) obj ob1 = 1234; string str; str = ob1 as string; // 불가능한 ..