방금 C # 속성 구문 을 개인 액세스 수정 자 와 함께 사용할 수 있음을 깨달았습니다 .
private string Password { get; set; }
이것은 기술적으로 흥미롭지 만 개인 필드 에는 식이 훨씬 적기 때문에 언제 사용할 것인지 상상할 수 없습니다 .
private string _password;
그리고 내부적으로 얻을 수는 있지만 설정 하거나 설정할 수 는 없지만 개인 필드를 얻을 수없는 경우를 상상할 수 없습니다 .
private string Password { get; }
또는
private string Password { set; }
그러나 중첩 된 / 상속 된 클래스 의 유스 케이스가 있거나 get / set 에 속성 값을 반환하는 대신 논리 가 포함될 수 있습니다 . 속성을 단순하게 유지하고 명시 적 메소드가 논리를 수행하도록하는 경향이 있지만, 예 GetEncodedPassword()
.
어떤 이유로 든 C #에서 개인 속성을 사용합니까 아니면 기술적으로 가능하지만 실제로 사용되지 않는 실제 코드 구성 중 하나입니까?
추가
좋은 답변, 그들을 통해 나는 개인 재산에 대한 이러한 사용을 컬링 :
- 개인 필드를 느리게로드해야하는 경우
- 개인 필드에 추가 논리가 필요하거나 계산 된 값인 경우
- 개인 필드는 디버그하기 어려울 수 있기 때문에
- "자신에게 계약을 제시"
- 직렬화의 일부로 노출 된 속성을 내부적으로 변환 / 단순화
- 클래스 내에서 사용될 전역 변수 랩핑