Programming 77

partial / struct

partial : class 내용 단순 분할 (컴파일시 합쳐짐)partial class ClassA { public void a() {} }partial class ClassA { public void b() {} } struct: c 와는 달리 메서드를 갖는 등 class 와 비슷하나, 아래와 같은 차이가 있다.1. 은닉성 보다 데이터의 자료 구조 자체로서 사용하기에 접근자를 주로 public 으로 사용한다.2. 가장 큰 차이점은 new 연산 없이 선언만으로 생성3. 대입시 deep copy4. 생성자는 반드시 매개변수가 잇어야 함5. System.ValueType 으로 부터 직접 상속된 형태

virtual, override, base

override 는 virtual 로 정의된 메서드만 재정의 가능virtual 로 정의하더라도 override 가 없으면 new 생성자 뒤의 타입의 메서드가 호출됨.new 로 정의하면 기존 메서드를 감춤. 단, base class 형에 derived class 로 생성하더라도 base class 의 메서드가 호출됨C# 에서는 base 로 super class 를 참조함 (Java 에서의 super) class ClassA { public void run() { Console.WriteLine("ClassA"); } } class ClassB : ClassA { public void run() { Console.WriteLine("ClassB"); } } class ClassC { public virtua..

ref / out / params / 명명된 매개변수 / 선택적 매개변수

[call by reference 를 하려면...]ref 만 변수 앞에 붙여주면 됨static void swap(ref int a, ref int b) [2개 이상의 값을 리턴하고 싶다면...]ref 를 써도 되지만, 좀더 안전한 out 을 써주면 됨void divide(int a, int b, out int q, out int r) [가변길이 변수는...]int sum(params int[] args) 과 같이 params 와 배열을 써주면 됨void print(string name, string phone) { }print(name: "윤", phone: "010"); [선택적 매개변수는...]void func(int a = 0, int b = 0) 과 같이 기본값을 넣어주면 됨