반응형

Partial classes

Generics

Nullable types

Iterators

//Anonymous types

//static classes

//different accessibility for property accessors

//External Aliases

//Namespace Alias Qualifiers

//Inline Warning Control

//...


Partial classes

하나의 클래스 -> 두 개 이상의 파일에 분리되어 존재가능

public partial class Customer

{

}


소스 컨트롤 : 파일 단위로 checkin, checkout함.

하나의 클래스를 여러 명이 작업해야 한다면?

하나의 클래스를 개발자수만큼 분리 후 컨트롤.

Code Generation : 툴이 생성한 코드와 개발자 코드의 분리.

예시)

Form1.cs과 Form1.Designer.cs partial 형태 두개로 나누어 놓았음


예시) 개발자 코드가 추가되면 안되는 코드

디자이너 코드

웹서비스 프록시 코드

Typed DataSet(xsd)


Partial classes 특징

CLR 수준이 아닌 C# compiler 수준의 기능.

실제 컴파일시에는 하나의 클래스로 인식.

단일 코드로 취합되므로 모든 제약사항은 이에 준함.

 - Base class : 모든 patrial 클래스는 같은 상위 클래스를 상속받아야 함.

 - Attribute, Interface 등도 동일한 개념.

binary 수준에서 partial이 허용되지 않는다. 소스코드 수준에서 partial 가능.


Patrial classes 용도

소스 컨트롤

Tool이 생성한 코드에 사용자 코드 추가.


무분별한 partial 클래스의 사용

코드의 관리를 어렵게 할 수 있다.

하나의 클래스 -> n개의 소스 파일


클래스뷰의 적절한 사용

partial의 유무와 관계없이 일관된 클래스 정보 표시.


반응형

'C#' 카테고리의 다른 글

Nullable Type  (0) 2009.09.07
Generic  (0) 2009.09.07
C# 3장 간단 정리  (0) 2009.07.30
C# 2장 간단 정리  (0) 2009.07.30
C# 1장 간단 정리  (0) 2009.07.30

+ Recent posts