컴퓨터/C#21 [C#] 클래스 간의 형변환(implicit, explicit), 추상 클래스, 추상 메서드, 델리게이트 클래스 간의 형변환 implicit 연산자 암시적 연산자 implicit operator로 오버로드 할수 있고 암시적, 명시적 형변환 둘다 가능하다. explicit 연산자 명시적 연산자. 반드시 개발자가 의도한 형변환만 가능하도록 제한을 둘 수 있다. 예제) 'Yen'과 'Dollar'를 'Won'으로 implicit과 explicit을 이용하여 형변환 하기. public class Currency { decimal money; public decimal Money { get { return money; } } public Currency(decimal money) { this.money = money; } } public class Won : Currency { public Won(Decimal mo.. 2020. 6. 4. [C#] 다형성.메서드 오버라이드 다형성 객제치향의 4대 특징 - 추상화, 캡슐화, 상속, 다형성 여러가지 형태를 띤다는 뜻. 메서드 오버라이드 부모클래스에서 정의된 메서드를 자식클래스의 인스턴스에 따라 재정의(override) 하는 것 부모클래스의 메서드에 virtual을 써주고 override 할려는 자식클래스 메서드에 override를 붙여줌. 예제) class Mammal { public virtual void Move() { Console.WriteLine("이동한다"); } } class Lion : Mammal { public override void Move() { Console.WriteLine("네 발로 움직인다"); } } class Whale : Mammal { public override void Move() { .. 2020. 6. 3. [C#] base (super) base this 예약어가 클래스 인스턴스 자체를 가리키는것과 달리 base 예약어는 부모 클래스를 명시적으로 가리킨다. 다른 언어에서 super와 같다고 보면 된다. base는 상속받을 때 생성자에 인한 오류가 생길때 쓰일 수 있다. class Book { decimal isbn13; public Book(decimal isbn13) { this.isbn13 = isbn13; } } class EBook : Book { public EBook() // 에러 발생 { } } Book을 상속받아 EBook을 생성할때 Book도 생성되는데 이미 Book에 인자 1개를 받는 생성자가 있으므로 디폴트 생성자가 생성되지 않기 때문에 생성될 때 isbn13을 초기화 시켜주는 Book클래스를 생성할 수 없으므로 컴파.. 2020. 6. 2. [C#] this this 지금까지 클래스 내부에서 멤버에 접근했을때 this를 생략하고 쓰고 있었다고 봐도 무방하다. 이런 경우엔 this를 써봤자 코드만 늘어날 뿐 써야할 이유가 없다. 생성자를 여러개 오버로딩 할 경우 모든 변수값을 받는 하나의 생성자를 만들어두고 this를 쓰면 중복코드를 상당히 줄일수 있다. 주의 해야될게 this는 new로 할당된 내부 객체를 가리키는 내부 식별자 이므로 정적멤버는 this 예약어를 사용할 수 없다. 예제) 여러개의 생성자 오버로딩 코드 줄이기 class Car { int iSpeed; // 속도 string sColor; // 색상 string sName; // 이름 string sVender; // 제조사 public Car() : this(0, "화이트", "미정", "미정.. 2020. 6. 2. 이전 1 2 3 4 ··· 6 다음