가능한 중복 :
What is the difference between a field and a property in C#?멤버 변수 또는 getter/setter 속성을 사용해야합니까?
나는 정기적으로 내 수업/하위 계층 보호 변수를 생성 할 필요가있다. 그러나 변수 대신 간단한 get/set 속성을 사용하는 구현을 계속 볼 수 있습니다.
getter 또는 setter에서 실행해야하는 코드가 없으며 범위가 항상 보호되므로 차이가 있습니까?
protected int foo1;
// vs
protected int foo2{ get; set; }
나는 전자의 장점은 직접 값으로 초기화 할 수 있습니다 알고 있지만, 내가 알고 있어야합니다 다른 것들/제한이 있는지 궁금하네요.
주 : getter/setter에 코드가있는 경우가 이 아닙니다.이 아닐 수 있습니다. 이것들은 단순히 내부적으로 계산 된 메트릭의 자리 표시 자이며 성능은 매우 중요합니다 (심지어 밀리 초 수준까지). 처음에는 getter/setter를 완전히 무시하므로 성능이 더 좋습니다.
속도가 문제입니까? 시험 했니? – Paparazzi
유일한 질문은 아닙니다. 단순함. 다시 한 번, 멤버 변수를 인라인으로 초기화 할 수 있지만 생성자를 사용하여 자동 생성 된 배킹 필드가있는 소품을 초기화하거나 배킹 필드를 직접 구현해야합니다.이 경우 속성이 필요하지 않습니다. 어느 쪽이든, 방금 보호 된 비공개에 대한 멤버 변수와 공용 또는 혼합 액세서 범위 값에 대한 속성을 사용했습니다. – MarqueIV