순서

I. Partial Class / Method
II. Partial Class / Method Example

 


I. Partial Class / Method

 

1. Partial Class

 

C# 2.0 이상에서 컴파일이 가능한데

여러 개의 파일에 하나의 클래스를 분기시키는 것이다.
예를 들면 서로 다른 파일에서 같은 클래스를 구현하고, 컴파일 및 동작이 하나의 클래스로 동작하는 것이다.

큰 프로젝트 및 Winform WPF 등 UI 작업 시 partial 클래스가 생성된다.

 

2. Partial Method

 

Method는 쪼개서 구현한다는 것은 말이 안 되고

한 Partial Class에서는 선언만 하고 다른 쪽에서 구현을 할 수 있다.

 


II. Partial Class / Method Example

 

Rule은 다음과 같다.

- partial로 시작하고, 선언 및 정의 일치
- void를 리턴해야 함
- out 매개변수, virtual, override, sealed 없다.
- 접근 지정자는 없고 private가 기본이다.

 

using System;

namespace partialApp {

// Partial Class 생성1
  partial class Emp {
    public Emp(string name) {
      this._name = name;
    }
    string _name;
    
    public void go() {
      Console.WriteLine("go");
    }
    
    public void Hello() {
      sayHello();
    }
    // Partial Method 선언 기본적으로 private
    partial void sayHello();
  }
  
// Partial Class 생성2
  partial class Emp {
    public void come() {
      Console.WriteLine("come");
    }
    
    // Partial Method 구현
    partial void sayHello() {
      Console.WriteLine("Hello {0}", this.name);
    }
  }
  
  public class CMain() {
    static void Main() {
      Emp e = new Emp("Aron");
      e.go(); // go도 존재하고
      e.come(); // come도 존재함
      e.Hello(); // partial Method는 private라 Interface 필요
    }
  }
}

각각 partial Class에서 생성한 Method들이 모두 작동한다.

한 가지 주의할 점은 Partial Method는 기본 private이기 때문에
해당 method를 실행시켜줄 수 있는 Interface가 필요하다.

이 Example에서는 Partial Method ( sayHello() ) , Interface( Hello() )

+ Recent posts