깊은 설명!
{get; set;}은 자동 속성이고 두 번째 필드는 필드입니다.
필드는 데이터를 포함하는 일부 유형의 일반 변수입니다.
속성은 두 가지 방법 (때로는 단지 하나임), 하나는 get, 하나는 설정입니다. 그들은 단지 필드와 같은 문법을 가지고 있지만 실제로는 아주 다릅니다.
특성
자동 특성, 또한, 내부적으로 개인 필드를 만들 가져 오기에 그 값을 돌려 줄 등 값의 집합을 필터링하거나 취득으로 뭔가를 가상화를위한 보통, 그 설정 값.
겉으로보기에 이것은 일반적인 필드와 같지만 속성을 사용하는 장면 (IL)은 필드를 사용하는 것과 완전히 다릅니다.
x = a.Get_Property1();
왜 그것이 좋은 것입니다 :
x = a.Property1;
이런 일에 번역입니다 :
a.Set_Propert1(4);
이 :
a.Property1 = 4;
같은 무언가로 번역입니다 공공 재산만을 사용하는 연습, ev 자동이라면 요? 이 속성을 사용하는 경우 ..
을
, 즉 다른 응용 프로그램에서 사용하면 라이브러리를 작성하는 말, 언젠가 당신은 당신의 클래스의 필드 중 하나를 제약하는 라이브러리의 새 버전을 출시 할 당신은 단지 속성을 변경할 수 있습니다 (자동적 인 것 일지라도 그것을 완전하게 대체 할 수 있습니다). 그리고 라이브러리를 사용하는 모든 응용 프로그램은 같은 방식으로 계속 사용할 수 있습니다.
공개 입력란을 만들었지 만 지금 제약하고 싶은 경우이 속성을 만들어 필드를 비공개로 설정해야하지만 그렇게하면 라이브러리를 사용하는 모든 응용 프로그램이 더 이상 필요하지 않게됩니다. 필드와 속성을 사용하는 방식이 다르기 때문에 베일을 벗긴다.
가능한 복제본 [C#의 필드와 속성의 차이점은 무엇입니까?] (http://stackoverflow.com/questions/295104/what-is-the-difference-between-a-field-and- a-property-in-c) – nawfal