C\#기초 지식의 Partial 사용
다음 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 을 사용 할 때 다음 과 같은 상황 에 주의해 야 한다.
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 가 개폐 원칙 을 만족 시 키 는 지 아 닌 지 는 확실 하지 않다.그러나 소프트웨어 구축 에 있어 저 는 실용주의 자 이 고 어떤 방식 이 좋 으 면 어떤 것 을 사용 합 니까?ORM 장면 에서 partial class 가 더 좋 지만 어떤 때 는 두 가지 유형 사이 에 계승 관계 가 존재 하기 때문에 반드시 계승 을 사용 해 야 한다.절대 다수의 상황 에서 계승 방식 이 필요 하지만 partial class 기술 이 있 는 이상 우 리 는 디자인 을 할 때 도 이 사고방식 을 고려 해 야 한다.partial class 를 사용 하면 확실히 읽 을 수 있 는 손실 을 가 져 올 수 있 습 니 다.특히 하나의 클래스 가 여러 파일 에 분포 되 어 있 을 때 파일 의 이름 은 규범 적 으로 보장 하 는 것 이 좋 습 니 다.
C\#기초 지식의 Partial 사용 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 관련 C\#Partial 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 부 탁 드 리 겠 습 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
WebView2를 Visual Studio 2017 Express에서 사용할 수 있을 때까지Evergreen .Net Framework SDK 4.8 VisualStudio2017에서 NuGet을 사용하기 때문에 패키지 관리 방법을 packages.config 대신 PackageReference를 사용해야...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.