가능한 중복 :
Difference between Property and Field in C# .NET 3.5+
Why should I use an automatically implemented property instead of a field?부동산을 사용할 수있는 이유는 무엇입니까?
아래의 두 예는 동일한 액세스 내에서 클래스의 외부 기록이 ... 왜 모두가 동일 보인다 않습니다 실시 예 2와 함께 실시 예 1을 사용 하는가? 나는 뭔가를 놓친 것 같아요.하지만 지금은 저를 괴롭 히고 있습니다. 나는 명확한 답을 찾을 수 없었습니다.
class SampleClass
{
/// Example 1
/// Shown by online examples.
/// Why use a Field AND a Property where you could just use Example 2?
private int age;
public int Age { get { return age; } }
private void setAge()
{
age = 1;
}
/// Example 2
/// Tidier code and better understanding of how Age2 can be accessed.
/// Personally I prefer this method, though am I right to use it over Example 1?
public int Age2 { get; private set; }
private void setAge2()
{
Age2 = 1;
}
}
해당 사본이 유효하지 않습니다. 그는 필드와 속성을 사용해야하는지 묻지 않고 수동 구현 속성과 자동 구현 속성을 묻습니다. – Servy
@OP 또한 자동 구현 된 속성은 C# 3.0에 도입되었지만 속성은 C# 1.0 이후 언어로되어 있습니다. 수동으로 정의 된 속성의 많은 예제는 오래된 코드 샘플이나 새로운 구문에 익숙하지 않은 (또는 아직 사용하지 않은) 사람들로부터 왔습니다. 물론 자동 소품이 수동으로 할 수없는 경우도 있지만, 게시 한 예는 사실이 아닙니다. – Servy
이것은 아마도 내가 가장 고심하고, 새로운 것이고, 더 나은 실천이 무엇인가? 이전 .NET 버전에서는 예제 2를 사용할 수 없었으며 동일한 효과를 얻으려면 예제 1이 필요했습니다. 예제 2를 사용하면 예제 1에서 필자의 코드를 불필요하게 부풀리지 않고보다 현대적인 구문을 사용하고 있다는 것을 안심할 수 있습니다. – Robula