문제

오른쪽 버튼> Refactor> accapsultate 필드를 사용하여 매번 액세서를 갖습니다. 문제는 새 수업을 만들 때 10 개 이상의 속성을 가질 수 있으며 모든 액세서가 1 x 1을 수행하는 것이 길다는 것입니다. 더 빠른 방법이 있습니까?

시간 내 주셔서 감사합니다.

도움이 되었습니까?

해결책

새 클래스를 만드는 경우 코드 스 니펫을 사용하여 먼저 필드를 작성한 다음 캡슐화하는 대신 캡슐화 된 필드를 작성할 수 있습니다. C#에서 바로 가기는 Prop and Propg (개인 세트 용)입니다.

다른 팁

스튜디오에 내장 된 리팩토링은 캡슐화 필드 리팩토링을 위해 한 번에 단일 필드를 지원하는 것처럼 보입니다. Refactor Pro! (http://www.devexpress.com/products/visual_studio_add-in/refactoring/) 또는 resharper (http://www.jetbrains.com/resharper/index.html) 둘 다 여러 필드 캡슐화를 지원합니다.

당신은 공상을 얻고 여러 필드를 선택한 다음 각 필드를 캡슐화 할 수있는 매크로를 만들 수 있지만, 대 마크로는 내 왁스 공이 아닙니다.

C# 3.0에서 새로운 속성 구문은 필드를 선언하고 액세서를 구현해야 할 필요성을 저장합니다. 구문은 다음과 같습니다.

public string Name { get; private set; }

또한 내부 구성원의 경우 발신자와 구현을 모두 제어 할 수 있기 때문에 사소한 속성은 내부 필드에 대한 가치가 거의 없다는 것을 지적하고 싶습니다. 많은 작업없이 미래에 속성으로 전환 할 수 있습니다.

공개 회원의 경우에도 공개 데이터 필드를 속성에 넣음으로써 단지 코드를 미래 방지 할 수 있다고 생각하는 것은 근시입니다. 최소한 생성자 (공장 포함)와 인터페이스 (인터페이스 포함) 주위에 간접 사항을 추가해야합니다. 또한 API의 소비자가 여러 버전을 통해 어떻게 작동하기를 기대하는지에 대한 깊은 생각이 필요합니다. 정말 어렵고 제 생각에 API 공급 업체 라면만 할 가치가 있습니다.

내 코드에서 속성을 사용하는 주된 이유는 반사를 사용하는 많은 도구가 속성을 보지만 필드는 아니기 때문입니다. 나는 이것이 실수라고 생각하지만 그것이 도구가 작동하는 방식입니다.

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