블로그 이미지
Magic_kit
study 관련자료를 한곳으로 자기 개발 목적으로 재태크 재무 관리 목적으로 일상생활의 팁을 공유 하기 위하여 블로그를 개설 하였습니다.

calendar

1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28

Category

Recent Post

Recent Comment

Archive

2009. 8. 17. 16:12 .Net Project/.Net C#
반응형

분할클래스란 ??
Partial 키워드를 사용하거나 Visual C#에서 partial 키워드를 사용하여 여러 선언
중에서 클래스 또는 구조체의 선언을 나눌 수 있습니다.
원하는 만큼의 다양한 소스 파일 또는 하나의 소스 파일에 partial 선언을 원하는 만큼
사용할 수 있습니다. 그러나 모든 선언은 동일한 어셈블리와 네임스페이스에 있어야 합니다.
Partial 클래스는 여러 상황에 유용합니다.

예를 들어 대규모 프로젝트를 수행하는 경우 하나의 클래스를 두 개 이상의 파일로
분할하면 두 명 이상의 프로그래머가 동시에 해당 프로젝트를 수행 가능합니다.

Visual Studio에서 생성된 코드를 사용하여 작업하는 경우 소스 파일을 다시 만들 필요 없이 클래스를 변경할 수 있습니다.
 
Visual Studio에서 생성된 코드의 예로는 Windows Forms 및 웹 서비스 래퍼 코드가 있습니다. 따라서 Visual Studio에서 만든 파일을 수정할 필요 없이 자동 생성된 클래스를 사용하는 코드를 만들 수 있습니다.

클래스나 구조체, 인터페이스 또는 메서드의 정의를 둘 이상의 소스 파일로 분할할 수 있습니다. 각 소스 파일에는 형식이나 메서드 정의 섹션이 들어 있고 이 모든 부분은 응용 프로그램을 컴파일할 때 결합 되어 사용됩니다.


partial 키워드는 클래스, 구조체 또는 인터페이스의 다른 부분을 네임스페이스 안에서
정의할 수 있음을 나타냅니다.
모든 부분에 partial 키워드를 사용해야 합니다. 최종 형식을 생성하려면 컴파일할 때
모든 부분을 사용할 수 있어야 합니다.
모든 부분은 public, private 등과 같이 액세스 가능성이 동일해야 합니다.

부분이 추상으로 선언되면 전체 형식이 추상으로 간주됩니다. 부분이 봉인으로 선언되면 전체 형식이 봉인으로 간주 되고 있으며, 부분이 기본 형식으로 선언되면 전체 형식이
해당 클래스를 상속합니다.

기본 클래스를 지정하는 모든 부분이 일치해야 하지만 기본 클래스를 생략하는 부분에서도 기본 형식을 상속합니다. 부분은 서로 다른 기본 인터페이스를 지정할 수 있으며 이 경우 최종 형식에는 모든 partial 선언에 나열된 모든 인터페이스가 구현됩니다. partial 정의에 선언된 모든 클래스, 구조체 또는 인터페이스 멤버를 다른 모든 부분에 사용할 수 있습니다. 최종 형식은 컴파일 타임에 모든 부분의 조합되어 사용되고 있습니다.

대리자나 열거형 선언에는 partial 한정자를 사용할 수 없습니다.


Program.cs 

//분할 클래스 : 동일한 클래스를 여러개의 파일에 걸쳐 나눠서 설계
//실제 빌드(컴파일)했을 때에는 단일 클래스로 합쳐짐...

using System;

public class 분할클래스
{
    public static void Main()
    {
        Car s = new Car("소나타");
        s.Run();
    }
  

}

public partial class Car
{
    public Car(string name)
    {
        this.name = name;
       
    }
}

Car.cs

using System;

public partial class Car
{
    //Field
    private string name;

}
public partial class Car
{
    //Method
    public void Run()
    {
        Console.WriteLine("{0} 달리다", this.name);
    }
}

반응형

'.Net Project > .Net C#' 카테고리의 다른 글

88장 반복기(Iterator)  (0) 2009.08.17
87장 암시적으로 형식변환  (0) 2009.08.17
85장 추가연산자  (0) 2009.08.17
84장 박싱&언박싱(boxing Unboxing)  (0) 2009.08.17
83장 값타입과 참조타입(ValueType,Reference)  (0) 2009.08.17
posted by Magic_kit