C# - "부분" 클래스의 이점은 무엇입니까?
-
22-07-2019 - |
문제
내가 이것을 묻는 이유는 클래스 정의를 배포하여 클래스 정의에 대해 모두 알고 있는지 확신할 수 없도록 하는 것이 매우 위험한 기능이라고 생각하기 때문입니다.세 가지 부분 정의를 찾았다고 해도 어딘가에 네 번째 정의가 없다는 것을 어떻게 알 수 있나요?
저는 C#을 처음 접했지만 C++로 10년을 보냈는데, 그래서 흔들리는 걸까요?
어쨌든, "부분적인" 개념에는 분명 큰 이점이 있을 것인데, 제가 분명히 놓치고 있는 부분입니다.그 뒤에 숨은 철학에 대해 더 자세히 알고 싶습니다.
편집하다: 미안, 놓쳤어 이 중복 기존 게시물을 검색할 때
해결책
코드 생성을 사용할 때 부분 클래스가 편리합니다. 생성 된 클래스를 수정하려면 (상속되지 않고) 코드가 재생 될 때 변경 사항을 잃을 위험이 있습니다. 별도의 파일에서 추가 메소드 등을 정의 할 수있는 경우, 손으로 만들어진 코드를 핵무기하지 않고 클래스의 생성 된 부분을 다시 만들 수 있습니다.
다른 팁
큰 이점은 컴퓨터 생성 코드를 숨기는 것입니다 (디자이너의).
Eric Lippert는 최근에 대한 블로그 게시물을 가지고 있습니다 부분 키워드 일반적으로.
또 다른 사용법은 중첩 클래스에 자신의 파일을 제공하는 것입니다.
다른 점은 클래스가 여러 인터페이스를 구현할 때 다른 파일에서 인터페이스 구현을 분할 할 수 있다는 것입니다.
따라서 모든 코드 파일에는 인터페이스 구현에 속하는 코드 만 있습니다. 그것은 다음과 같습니다 우려의 분리 개념.
동일한 클래스를 편집하는 두 사람과자가 생성 디자이너 코드는 부분 클래스와 방법으로 해결 된 두 가지 즉각적인 기능입니다.
디자이너가 별도의 파일로 코드를 생성하는 것은 다음과 같습니다 많이 1.1에 비해 작업하기가 더 쉽습니다. 1.1은 Code가 Visual Studio (Windows Forms)에 의해 종종 엉망이 될 수 있습니다.
Visual Studio는 여전히 Designer 파일, 코드 뒤에 및 디자인 파일을 ASP.NET과 동기화하는 것을 혼란스럽게합니다.
어떤 이유로든 논리적으로 더 작은 클래스로 분리할 수 없거나 허용되지 않는 터무니없이 큰 클래스가 있는 경우 더 효과적으로 작업하기 위해 최소한 물리적으로 여러 파일로 나눌 수 있습니다.기본적으로 위아래로 스크롤하지 않고도 한 번에 작은 덩어리를 볼 수 있습니다.
이는 아마도 일부 난해한 정책으로 인해 수많은 확고한 종속성으로 인해 기존 API를 망칠 수 없는 레거시 코드에 적용될 수 있습니다.
부분 클래스를 가장 잘 사용하는 것은 아니지만 다른 방법으로는 수정할 수 없는 코드를 구성하는 대체 옵션을 확실히 제공합니다.
어쩌면 너무 늦었지만 2 센트를 추가하도록 해주세요.
*. 대규모 프로젝트를 수행 할 때 별도의 파일에 클래스를 전파하면 여러 프로그래머가 동시에 작업 할 수 있습니다.
*. vs.net 생성 클래스에 대한 코드 (확장 된 기능)를 쉽게 작성할 수 있습니다. 이를 통해 시스템 생성 코드를 엉망으로 만들지 않고 자신의 요구 코드를 작성할 수 있습니다.