문제

내가 이것을 묻는 이유는 클래스 정의를 배포하여 클래스 정의에 대해 모두 알고 있는지 확신할 수 없도록 하는 것이 매우 위험한 기능이라고 생각하기 때문입니다.세 가지 부분 정의를 찾았다고 해도 어딘가에 네 번째 정의가 없다는 것을 어떻게 알 수 있나요?

저는 C#을 처음 접했지만 C++로 10년을 보냈는데, 그래서 흔들리는 걸까요?

어쨌든, "부분적인" 개념에는 분명 큰 이점이 있을 것인데, 제가 분명히 놓치고 있는 부분입니다.그 뒤에 숨은 철학에 대해 더 자세히 알고 싶습니다.

편집하다: 미안, 놓쳤어 이 중복 기존 게시물을 검색할 때

도움이 되었습니까?

해결책

코드 생성을 사용할 때 부분 클래스가 편리합니다. 생성 된 클래스를 수정하려면 (상속되지 않고) 코드가 재생 될 때 변경 사항을 잃을 위험이 있습니다. 별도의 파일에서 추가 메소드 등을 정의 할 수있는 경우, 손으로 만들어진 코드를 핵무기하지 않고 클래스의 생성 된 부분을 다시 만들 수 있습니다.

다른 팁

큰 이점은 컴퓨터 생성 코드를 숨기는 것입니다 (디자이너의).
Eric Lippert는 최근에 대한 블로그 게시물을 가지고 있습니다 부분 키워드 일반적으로.

또 다른 사용법은 중첩 클래스에 자신의 파일을 제공하는 것입니다.

다른 점은 클래스가 여러 인터페이스를 구현할 때 다른 파일에서 인터페이스 구현을 분할 할 수 있다는 것입니다.

따라서 모든 코드 파일에는 인터페이스 구현에 속하는 코드 만 있습니다. 그것은 다음과 같습니다 우려의 분리 개념.

동일한 클래스를 편집하는 두 사람과자가 생성 디자이너 코드는 부분 클래스와 방법으로 해결 된 두 가지 즉각적인 기능입니다.

디자이너가 별도의 파일로 코드를 생성하는 것은 다음과 같습니다 많이 1.1에 비해 작업하기가 더 쉽습니다. 1.1은 Code가 Visual Studio (Windows Forms)에 의해 종종 엉망이 될 수 있습니다.

Visual Studio는 여전히 Designer 파일, 코드 뒤에 및 디자인 파일을 ASP.NET과 동기화하는 것을 혼란스럽게합니다.

어떤 이유로든 논리적으로 더 작은 클래스로 분리할 수 없거나 허용되지 않는 터무니없이 큰 클래스가 있는 경우 더 효과적으로 작업하기 위해 최소한 물리적으로 여러 파일로 나눌 수 있습니다.기본적으로 위아래로 스크롤하지 않고도 한 번에 작은 덩어리를 볼 수 있습니다.

이는 아마도 일부 난해한 정책으로 인해 수많은 확고한 종속성으로 인해 기존 API를 망칠 수 없는 레거시 코드에 적용될 수 있습니다.

부분 클래스를 가장 잘 사용하는 것은 아니지만 다른 방법으로는 수정할 수 없는 코드를 구성하는 대체 옵션을 확실히 제공합니다.

어쩌면 너무 늦었지만 2 센트를 추가하도록 해주세요.

*. 대규모 프로젝트를 수행 할 때 별도의 파일에 클래스를 전파하면 여러 프로그래머가 동시에 작업 할 수 있습니다.

*. vs.net 생성 클래스에 대한 코드 (확장 된 기능)를 쉽게 작성할 수 있습니다. 이를 통해 시스템 생성 코드를 엉망으로 만들지 않고 자신의 요구 코드를 작성할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top