우연히 C#에서 하나의 클래스에서 여러 파일에 함수를 선언 및 정의해야하는 일이 생겼다.
C++만 해오던 나라서 그게 어떻게 가능하지?라는 의문이 들었는데, partial이라는 키워드를 알게되었다.
file A)
public partial class Employee
{
public void DoWork()
{
}
}
file B)
public partial class Employee
{
public void GoToLunch()
{
}
}
partial 키워드는 클래스, 구조체 또는 인터페이스의 다른 부분을 네임스페이스에서 정의할 수 있음을 나타낸다. 모든 부분은 partial 키워드를 사용해야한다. 최종 형식을 생성하려면 컴파일 시간에 모든 부분을 사용할 수 있어야 한다.
모든 부분에 public, private 등의 동일한 액세스 가느성이 있어야한다.
file A)
public partial class Employee
{
public System.UInt32 a;
public void DoWork()
{
}
}
file B)
public partial class Employee
{
public void GoToLunch()
{
a = 1;
}
}
위와 같이 사용이 가능하다.