언어/C#

partial

에린_1 2024. 8. 9. 09:47
728x90

partial

  • 클래스를 정의할 때 사용하는 특수한 키워드로, 하나의 클래스를 여러 파일에 걸쳐서 정의할 수 있게 해준다. 이를 통해 코드를 모듈화하고, 클래스 정의를 논리적으로 구분하여 관리할 수 있다.
  • partial 키워드는 클래스, 구조체, 인터페이스, 메서드에 사용할 수 있다.

partial 클래스

  • 하나의 클래스 정의를 여러 파일로 분할할 수 있으며, 모든 부분 클래스는 컴파일 타임에 하나의 클래스 정의로 결합된다. 이는 특히 큰 클래스나 자동 생성된 코드를 사용하여 코드 생성과 사용자 정의 코드를 분리하고자 할 때 유용하다.

사용 사례

  1. 자동 생성된 코드와 사용자 코드의 분리
    • 예를 들어, Windows Forms 디자이너, WPF 디자이너, Entity Framework 등에서 자동 생성된 코드를 사용자 정의 코드와 분리하여 관리할 수 있다.
  2. 큰 클래스의 분리
    • 클래스가 너무 커지는 것을 방지하기 위해 논리적인 부분으로 분리하여 관리할 수 있다. 이렇게 하면 특정 기능이나 부분을 별도의 파일로 관리할 수 있어 가독성과 유지보수성이 향상된다.
  3. 팀 작업에서의 협업
    • 여러 개발자가 동시에 동일한 클래스의 다른 부분을 작업할 수 있도록 지원한다. 이렇게하면 병합 충돌을 줄이고 작업 효율성을 높일 수 있다.

주의사항

  • 접근 제한자
    • partial 클래스의 각 부분에는 접근 제한자를 따로 지정할 수 없으며, 모든 부분이 동일한 접근 제한자를 공유한다. 만약 다른 접근 제한자를 지정하려고 하면 컴파일 오류가 발생한다.
  • 상속
    • partial 클래스는 하나의 클래스만 상속할 수 있으며, 각 부분에 상속 관계를 정의할 수 없다. 이는 컴파일러가 결합 시 혼동을 방지하기 위함이다.
  • 일관성 유지
    • partial 클래스의 각 부분은 동일한 네임스페이스 내에 있어야 하며, 동일한 제네릭 매개변수를 공유해야 한다.
728x90

'언어 > C#' 카테고리의 다른 글

GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE  (0) 2024.08.12
Sealed  (0) 2024.08.12
GeneratedClrTypeInfo  (0) 2024.08.09
Datatime 연산  (0) 2024.08.09
HasRows  (0) 2024.08.08