오진이 블로그

[제프리 리처의 CLR via C#] 부분 클래스, 부분 구조체, 부분 인터페이스 본문

Development/C#

[제프리 리처의 CLR via C#] 부분 클래스, 부분 구조체, 부분 인터페이스

오늘도 진이 2021. 7. 6. 10:39

제프리 리처의 CLR via C#

2부. 타입 설계

6장. 타입과 멤버의 기본

부분 클래스, 부분 구조체, 부분 인터페이스

  • 부분 클래스, 구조체, 인터페이스에 대해서 살펴볼 것이다.
  • partial 키워드를 사용하면 한 소스 코드 파일 내에서 여러 조각으로 타입의 선언을 분할하거나 여러 소스 코드 파일에 걸쳐 여러 조각으로 타입의 선언을 분할할 수 있게 하고 나중에 컴파일 단계에서 C# 컴파일러가 이를 하나로 통합하여 컴파일하게 되므로 CLR은 완성된 타입 정의 위에서 작업할 수 있도록 해준다.
  • 여러 조각으로 선언을 분할하는지 그 이유를 살펴보면 대개 다음의 이유 때문인 경우가 많다.
    • 소스코드 제어
    • 클래스, 구조체, 인터페이스를 단일 파일 내에서 논리적으로 여러 개로 분할하여 선언하기
    • 코드 분할
  • partial 키워드는 타입의 종류와 무관하게 모든 파일들에 대해 적용할 수 있다.
  • 이러한 코드를 한 번에 컴파일하도록 지시하면 최종적으로 생성되는 EXE, DLL, 모듈 파일 안에서는 하나의 완성된 타입으로 컴파일이 이루어지게 된다.
  • 부분 타입은 전적으로 C# 컴파일러의 기능으로 제공되는 것이며 CLR은 부분 타입에 대해 전혀 알지 못한다.
  • 부분 타입으로 구성되는 코드들은 반드시 모두 동일한 언어로만 구성되어야하고, 컴파일할 떄에는 단일 컴파일 단위로 한 번에 지정되어야만 제대로 동작한다.
  • 부분 타입으로 선언되는 모든 타입들은 또한 같은 네임스페이스 안에서 선언되어야만 한다.
Comments