저는 C# 애호가로 시작하고 있으며 속성은 항상 공개되어야한다고 생각합니다. 사유 재산은 말이되지 않습니다. 그럴 거니?C# 개인 속성 - 사용/의미가 있습니까?
이겠습니까 :
private string propertyOne {get; set;}
이 동등 :
는public string propertyOne {private get; private set;}
저는 C# 애호가로 시작하고 있으며 속성은 항상 공개되어야한다고 생각합니다. 사유 재산은 말이되지 않습니다. 그럴 거니?C# 개인 속성 - 사용/의미가 있습니까?
이겠습니까 :
private string propertyOne {get; set;}
이 동등 :
는public string propertyOne {private get; private set;}
예. 특히 getters/setter에 구현하려는 논리가있는 경우 개인 속성이 적합 할 수 있습니다. 클래스 내에서 이들을 액세스 가능하게 할 수 있습니다 (따라서 private입니다).하지만 getter/setter 논리를 한 곳에서 캡슐화하려고합니다.
인쇄 한 두 줄의 코드에는 차이가 있습니다. 공개 속성을 반영하는 사용자는 첫 번째 항목을 볼 수 없지만 getter/setter를 호출 할 수 없더라도 두 번째 항목을 볼 수 있습니다.
속성을 사용하는 아이디어는 캡슐화보다는 '외부 세계'에 원시 변수를 제시하는 것입니다. 그렇게하면 액세서에 여분의 로직을 추가 할 수도 있습니다.
아니요, 순수한 사유 재산은 일반적인 사용 사례가 아닙니다.
개인용 설정 도구로 공공 시설을 보는 것은 드문 일이 아닙니다.
네, 그렇습니다. 후자는 기능면에서는 앞의 기능과 동일하지만 기능을 구현하는 것은 의미가 없습니다.
나는 가끔 내가 그것을 공개 할 만 클래스가이 값을 설정할 수에 존재
public string propertyOne {get; private set;}
를 사용하는 경향이있다. 하지만 대부분은 다른 로직을 getter에 캡슐화하여 다른 기능을 수행하기를 원하는 경우도 있습니다.
하지만 다른 기능을 캡슐화하기 위해 공용 속성 인 경우가 많습니다.
예를 들어 propertyOne은 세계에서 설정할 수 있지만 비공개로만 읽을 수 있습니다. 그게 당신이 의도 한 것입니까? –
나는 그것을 알아 차 렸으며 문자 그대로 초를 편집했다. =) – Chris
예, 두 비트의 코드는 같습니다. 자동 getter/setter로 개인 속성을 생성 한 적이 없습니다. 매우 유용하지 않습니다. 필자는 getter에 대한 실제 구현과 함께 개인 속성을 사용했습니다. 개인 get 메소드 (또는 속성 getter)가 유용 할 수 있습니다.
예 동일합니다. 다른 누군가를 위해 수업을 쓰고 있다면 파일에 물건이있을 수 있습니다. 액세스 권한을 원하지 않습니다. 예를 들어, 누군가는 이자율을 원하지만 환율의 가치를 바꿀 수 없기를 바랄 것입니다. 이 경우 공개 double rate {get; 개인 설정;} – samack
참고 사항 : 라이브러리 개발자를위한 .NET 디자인 지침에서는 속성을 파스칼 케이싱 (Pascal Cased)으로 지정합니다. http://msdn.microsoft.com/en-us/library/x2dbyw72%28v=vs.71%29.aspx – Alan
최신 링크는 http://msdn.microsoft.com/en-us/library/입니다. ms229043.aspx. 게시 된 링크는 .NET 1.1입니다. –