순서
I. Partial Class / Method
II. Partial Class / Method Example
I. Partial Class / Method
1. Partial Class
C# 2.0 이상에서 컴파일이 가능한데
여러 개의 파일에 하나의 클래스를 분기시키는 것이다.
예를 들면 서로 다른 파일에서 같은 클래스를 구현하고, 컴파일 및 동작이 하나의 클래스로 동작하는 것이다.
큰 프로젝트 및 Winform WPF 등 UI 작업 시 partial 클래스가 생성된다.
2. Partial Method
Method는 쪼개서 구현한다는 것은 말이 안 되고
한 Partial Class에서는 선언만 하고 다른 쪽에서 구현을 할 수 있다.
II. Partial Class / Method Example
Rule은 다음과 같다.
- partial로 시작하고, 선언 및 정의 일치
- void를 리턴해야 함
- out 매개변수, virtual, override, sealed 없다.
- 접근 지정자는 없고 private가 기본이다.
using System;
namespace partialApp {
// Partial Class 생성1
partial class Emp {
public Emp(string name) {
this._name = name;
}
string _name;
public void go() {
Console.WriteLine("go");
}
public void Hello() {
sayHello();
}
// Partial Method 선언 기본적으로 private
partial void sayHello();
}
// Partial Class 생성2
partial class Emp {
public void come() {
Console.WriteLine("come");
}
// Partial Method 구현
partial void sayHello() {
Console.WriteLine("Hello {0}", this.name);
}
}
public class CMain() {
static void Main() {
Emp e = new Emp("Aron");
e.go(); // go도 존재하고
e.come(); // come도 존재함
e.Hello(); // partial Method는 private라 Interface 필요
}
}
}
각각 partial Class에서 생성한 Method들이 모두 작동한다.
한 가지 주의할 점은 Partial Method는 기본 private이기 때문에
해당 method를 실행시켜줄 수 있는 Interface가 필요하다.
이 Example에서는 Partial Method ( sayHello() ) , Interface( Hello() )
'Programming > .NET(C#,WPF)' 카테고리의 다른 글
[Programming][C#] 문법 9. Parameter(ref, out), Operator Overloading (0) | 2023.01.13 |
---|---|
[Programming][C#] 문법 8. 한정자 (virtual, override, sealed, new) (0) | 2023.01.09 |
[Programming][C#] 문법 6. Deep / Shallow Copy (0) | 2023.01.09 |
[Programming][C#] 문법 5. Struct (0) | 2023.01.09 |