C\#기초 지식의 Partial 사용

5085 단어 C#Partial
C\#2.0 은 클래스,구조 또는 인터페이스의 정 의 를 두 개 이상 의 소스 파일 로 나 눌 수 있 으 며,클래스 성명 전에 parial 키 워드 를 추가 하면 됩 니 다.
다음 PartialTest 클래스

class PartialTest
{
  string Str_FieldTest; 
  int Int_FieldTest; 
  public void DoTest() 
  { 
    Debug.Print("Test"); 
  }
}
 다른 원본 파일 에 다음 형식 으로 쓸 수 있 습 니 다:
파일 에 쓰기:

partial class PartialTest
{
  string Str_FieldTest;
  int Int_FieldTest;
}
다른 파일 에 쓰기:

partial class PartialTest
{
  public void DoTest()
  {
  Debug.Print("Test");
  }
}
1.어떤 상황 에서 분 류 를 사용 합 니까?
4.567917.대형 프로젝트 를 처리 할 때 하나의 종 류 를 여러 개의 독립 된 파일 에 분포 시 키 면 여러 명의 프로그래머 가 이 종 류 를 동시에 처리 할 수 있 습 니 다(병행 처 리 를 지원 하고 실 용적 입 니 다)4.567917.자동 으로 생 성 된 원본 을 사용 할 때 원본 파일 을 다시 만 들 지 않 아 도 코드 를 클래스 에 추가 할 수 있 습 니 다.Visual Studio 는 Windows 창,웹 창 을 만 들 때 이 방법 을 사용 합 니 다.Visual Studio 가 만 든 파일 을 편집 하지 않 아 도 이러한 종류의 코드 를 만 들 수 있 습 니 다.다시 말 하면 시스템 은 자동 으로 파일 을 만 듭 니 다.(일반적으로 창 과 창의 컨트롤 속성 을 기록 합 니 다)다른 파일 이나 몇 개의 파일 은 사용자 가 직접 작성 한 코드 를 기록 합 니 다.이 두 부분 을 분리 하면 구조 가 매우 뚜렷 해 보이 고 사용 자 는 자신 이 맡 은 부분 에 만 관심 을 가지 면 된다(필요 하 다 면 이 두 부분 은 서로 호출 할 수 있다).편집 이 실 행 될 때 까지 시스템 은 자동 으로 이 두 부분 을 파일 로 합성 합 니 다.
2.Partial 을 사용 할 때 다음 과 같은 상황 에 주의해 야 한다.
  • partial 키 워드 를 사용 하면 네 임 스페이스 에서 이러한 유형,구조 또는 인터페이스의 다른 부분 을 정의 할 수 있 음 을 나타 낸다
  • 모든 부분 에 partial 키 워드 를 사용 해 야 합 니 다4.567917.각 부분 은 반드시 똑 같은 접근 성 을 가 져 야 한다.예 를 들 어 Public,private 등4.567917.만약 에 임 의 부분 을 추상 적 인 것 으로 성명 하면 전체 유형 은 추상 적 인 것 으로 여 겨 진다
  • 임 의 부분 을 밀봉 한 것 으로 밝 히 면 전체 유형 은 밀봉 한 것 으로 여 겨 진다
  • 4.567917.만약 에 임 의적 으로 일부 성명 이 기 류 를 계승 할 때 전체 유형 은 이런 유형 을 계승 할 것 이다4.567917.각 부분 은 서로 다른 기본 인 터 페 이 스 를 지정 할 수 있 고 최종 유형 은 모든 지부 성명 에 표 시 된 모든 인 터 페 이 스 를 실현 할 것 이다4.567917.특정한 부분 정의 에서 밝 힌 모든 종류,구조 또는 인터페이스 구성원 은 모든 다른 부분 에서 사용 할 수 있다4.567917.내장 형 태 는 부분 으로 나 눌 수 있 습 니 다.내장 형 자체 가 부분 이 아니 더 라 도 마찬가지 입 니 다.다음 과 같다.
    
    class Container
    {
      partial class Nested
      {
        void Test1();
      }
      partial class Nested
      {
        void Test2();
      }
    }
    3.분포 류 의 사용 제한
    1.같은 유형의 각 부분의 모든 부분 유형 정 의 는 parial 로 수정 해 야 합 니 다.다음 과 같다.
    
    public partial class A { }
    public class A { } // Error, must also be marked partial
    
    2.partial 수식 자 는 키워드 class,struct 또는 interface 앞 에 있 는 위치 에 만 나타 날 수 있 습 니 다(매 거 진 또는 다른 유형 은 partial 을 사용 할 수 없습니다).
    3.같은 유형의 각 부분의 모든 부분 유형 정 의 는 같은 프로그램 집합 과 같은 모듈(.exe 또는.dll 파일)에서 정의 해 야 합 니 다.지부 정 의 는 여러 모듈 을 뛰 어 넘 을 수 없습니다.
    4.유형 명 과 범 형 매개 변 수 는 모든 부분 유형 정의 에서 일치 해 야 합 니 다.범 형 유형 은 부분 적 으로 나 눌 수 있다.각 지부 성명 은 같은 순서 로 같은 매개 변수 이름 을 사용 해 야 한다.
    4.응용 장면
    partial class 를 사용 할 수 있 는 장면 이 많 습 니 다.여기 서 ORM 의 예 를 분석 합 니 다.시스템 에 Cat 류 가 있 는데 속성 ID,Age,Weight 는 모두 데이터베이스 에 저장 해 야 하고 하나의 정보 시스템 에서 흔히 볼 수 있 는 수요 가 있다.데이터 베 이 스 를 읽 는 구 조 를 통 해 Cat 류 의 코드 를 도구 로 생 성 할 수 있 습 니 다.또한 ORM 프레임 워 크 는 데이터베이스 정보 에서 Cat 대상 을 생 성 하 는 것 을 지원 합 니 다.
    현재 Cat 는 아무런 동작 도 하지 않 습 니 다.고객 은 Miaow()의 함수 가 필요 하 다 고 말 했 습 니 다.이 때 ORM 에서 생 성 된 Cat 클래스 를 확장 해 야 합 니 다.분명 한 것 은 우리 가 자동 으로 생 성 된 코드 를 수정 할 수 없다 는 것 이다.왜냐하면 이것 은 데이터 베이스 구조 와 코드 가 동기 화 되 는 문제 와 관련 될 수 있 기 때문이다.이 수 요 를 해결 하 는 방법 은 두 가지 가 있 습 니 다.계승 방식 확장,partial class 확장 입 니 다.
    1.상속 방식 확장
    도 구 는 자동 으로 CatBase 클래스 를 생 성 합 니 다.이 클래스 는 속성 만 있 고 ORM 프레임 에 삽 입 됩 니 다.확장 기능 이 필요 한 만큼 이 기본 클래스 에 대한 계승 을 생각 하기 쉬 워 Cat 류 가 생 겼 다.Cat 류 는 소원 대로 Miaow()함수 가 생 겼 습 니 다.이전 시스템 에 서 는 CatBase 의 인 스 턴 스 를 사 용 했 습 니 다.현재 CatBase 인 스 턴 스 를 만 드 는 곳 은 Cat 를 만 드 는 인 스 턴 스 로 바 꿔 야 합 니 다.이 문 제 는 ORM 프레임 워 크 로 해결 합 시다.고객 의 수요 가 실현 되 었 고 우리 자신의 코드 생 성도 파괴 되 지 않 았 으 며 임 무 를 완성 했다.
    2.부분 클래스 확장
    partial class 는 쉽게 말 하면 하나의 코드 를 두 개 이상 의 코드 파일 에 쓸 수 있다 는 것 이다.컴 파일 러 는 컴 파일 하 는 과정 에서 이 몇 개의 파일 을 조합 하여 함께 컴 파일 한다.멋 진 기술도구 가 만 든 Cat 클래스 는 변 하지 않 습 니 다.함 수 를 추가 해 야 하 는 만큼 코드 파일 을 새로 만 들 고 Miaow()함 수 를 쓰 면 됩 니 다.클래스 의 성명 을 class 에서 partial class 로 바 꾸 고 작업 을 수행 해 야 합 니 다.
    3.비교 분석
    두 가지 사고방식 모두 수 요 를 실현 할 수 있다.어느 것 이 좋 고 어느 것 이 나 쁜 지 자세하게 분석 해 야 한다.
  • 인 스 턴 스 생 성:partial class 가 더욱 간결 합 니 다
  • 4.567917.시스템 복잡 도:시스템 에 있어 partial class 방식 은 한 가지 유형 만 존재 하고 계승 방식 은 두 가지 유형 이 있다4.567917.계승 논리:논리 적 으로 Cat 는 기본 적 인 CatBase 가 필요 하지 않 습 니 다.이렇게 하 는 것 은 코드 구축 과정 에서 의 제한 때 문 입 니 다4.567917.유지 성:두 가지 방식 에서 두 개의 코드 파일 이 존재 하고 유지 비용 은 차이 가 없다4.567917.가 독성:두 개의 Cat 파일 은 확실히 이해 하기 어렵다4.총화
    전체적으로 파 티 얼 클 라 스 를 사용 하 는 것 이 좀 더 우아 하 다"고 말 했다.계승'의 이런 방식 은 전통 적 인 사고방식 에 비교적 부합 되 는데 partial class 가 개폐 원칙 을 만족 시 키 는 지 아 닌 지 는 확실 하지 않다.그러나 소프트웨어 구축 에 있어 저 는 실용주의 자 이 고 어떤 방식 이 좋 으 면 어떤 것 을 사용 합 니까?ORM 장면 에서 partial class 가 더 좋 지만 어떤 때 는 두 가지 유형 사이 에 계승 관계 가 존재 하기 때문에 반드시 계승 을 사용 해 야 한다.절대 다수의 상황 에서 계승 방식 이 필요 하지만 partial class 기술 이 있 는 이상 우 리 는 디자인 을 할 때 도 이 사고방식 을 고려 해 야 한다.partial class 를 사용 하면 확실히 읽 을 수 있 는 손실 을 가 져 올 수 있 습 니 다.특히 하나의 클래스 가 여러 파일 에 분포 되 어 있 을 때 파일 의 이름 은 규범 적 으로 보장 하 는 것 이 좋 습 니 다.
    C\#기초 지식의 Partial 사용 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 관련 C\#Partial 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 부 탁 드 리 겠 습 니 다!

    좋은 웹페이지 즐겨찾기