到现在为止,我对PropertiesMethods是C#中的两件事有所印象。但是后来我做了下面的事情。

这对我来说是个“开眼神”。我期待一种属性stringProp和一种方法stringProp,但是我得到了这一点。

为什么会这样?有人可以解释一下。

最佳答案

是的,编译器会为属性生成一对get和set方法,并为自动实现的属性生成一个私有(private)支持字段。

public int Age {get; set;}

等于:
private int <Age>k__BackingField;

public int get_Age()
{
     return <Age>k__BackingField;
}

public void set_Age(int age)
{
    <Age>k__BackingField = age;
}

访问您的属性的代码将被编译为调用这两种方法之一。这正是将公共(public)场所更改为公共(public)属性(property)的重大突破之一。

参见乔恩·斯基特(Jon Skeet)的Why Properties Matter

10-07 13:13
查看更多