2008-09-24 6 views

답변

2

새 클래스를 만드는 경우 코드 조각을 사용하여 먼저 필드를 만든 다음 캡슐화하는 대신 캡슐화 된 필드를 만들 수 있습니다. C#에서는 바로 가기가 prop 및 propg (개인 집합의 경우)입니다.

1

리팩토링은 스튜디오에 내장 된 것처럼 보이지만 캡슐화 필드 리팩터링을 위해 한 번에 하나의 필드 만 지원합니다. 프로 리 팩터! (http://www.devexpress.com/Products/Visual_Studio_Add-in/Refactoring/) 또는 Resharper (http://www.jetbrains.com/resharper/index.html)는 둘 다 여러 필드 캡슐화를 지원합니다.

당신은 여러 가지 필드를 선택하고 각각을 캡슐화 할 수있는 매크로를 조합 할 수 있습니다. 그러나 VS 매크로는 내 왁스 볼이 아닙니다.

+0

resharper에서 한 번에 둘 이상의 작업을 수행하려면 어떻게해야합니까? 여러 개인 필드를 hilite하면 캡슐화 옵션이 회색으로 변합니다. – mattlant

+0

Resharper를 한동안 사용하지 않았기 때문에 Generate Properties 코드 생성 기능 (http://www.jetbrains.com/resharper/documentation/help20/AdvEditing/altInsertProp.html)을 생각해 볼 수 있습니다. – ckramer

1

C# 3.0에서는 새로운 속성 구문을 사용하여 & 필드에 접근자를 구현해야한다고 선언 할 필요가 없습니다. , 당신이 호출자와 구현 모두를 제어 할 수 있기 때문에 내부 구성원에 대한 사소한 특성, 내부 필드 위에 아주 작은 값을 가질 것을 지적 할 또

public string Name { get; private set; } 

- 당신은로 전환 할 수 있습니다 :처럼 그들은 구문입니다 보인다 미래의 많은 재산을 필요로하지 않습니다.

public 멤버 일지라도 공개 데이터 필드를 속성에 추가하는 것만으로도 코드를 미래 보장 할 수 있다고 생각하면 근시가됩니다. 적어도 생성자 (팩토리 포함)와 인터페이스 (인터페이스 포함) 주변에 간접 참조를 추가해야합니다. 또한 API 소비자가 여러 버전을 통해 작업 할 수있는 방법에 대해 깊이 생각해야합니다. 제 의견으로는 API 공급 업체라면 정말 힘들 것입니다.

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