public partial class CoOrds { private int x; private int y; public CoOrds(int x, int y) { this.x = x; this.y = y; } } public partial class CoOrds { public void PrintCoOrds() { Console.WriteLine("CoOrds: {0},{1}", x, y); } } class TestCoOrds { static void Main() { CoOrds myCoOrds = new CoOrds(10, 15); myCoOrds.PrintCoOrds(); } } // Output: CoOrds: 10,15
C# 에서는 이렇게 partial 이라는 키워드를 사용하여
클래스의 필드와 메소드를 분할할 수 있다.
그리고 메소드 또한 분할할 수 있는데..
public partial class Item
{
public void SetItem()
{
Equip()
}
partial void Equip();
}
public partial class Item
{
partial void Equip()
{
Log("Equip Complete);
}
}
이런식으로 선언부와 정의부를 나눌 수 있다.
선언부만 있고, 정의부가 없다면 아예 그 함수 자체를 없애 버린다.
만약의 여러파일로 나누어 선언부, 정의부 이렇게 구분할 수 있다면 좋긴할텐데
C# 에서는 헤더파일이라는 개념이 없기 때문에 불가능하다;
마지막으로 파티셜 메소드에는 몇가지 제약과 특징이 있는데, 다음과 같다.
* 당연히 partial 키워드로 시작해야 하며 리턴형은 void 이다.
* ref 매개변수는 사용가능하며 out 매개변수는 사용할 수 없다.
* private 타입만 가능하며 virtual 이 될 수 없다.
* extern 이 될 수 없다.
* static, unsafe 도 사용할 수 없다.
* 제너릭 메소드는 가능하다.
* 정의부 구현부에서 델리게이트는 사용가능 하나 정의부만 있는 곳에서는 사용 불가능
'프로그래밍 > C# 프로그래밍' 카테고리의 다른 글
스택과 힙 메모리 - 값으로 참조형식 참조로 참조형식 (0) | 2015.10.22 |
---|---|
Property - Get, Set (0) | 2015.10.21 |
IComparable, IComparer 비교정렬 (0) | 2015.10.13 |
C#에서 typedef 사용법 (0) | 2015.10.06 |
암시적 타입 var 키워드 (0) | 2015.10.05 |