到目前为止,我的印象是Properties
和Methods
在C#中是两个不同的东西。但是后来我做了一些类似下面的事情。
这让我大开眼界。我原以为会有一个属性stringProp
和一个方法stringProp
,但结果却是这样。
为什么会发生这种情况?有人能解释一下吗。
发布于 2014-04-16 15:26:20
是的,编译器为属性生成一对get和set方法,并为自动实现的属性生成一个私有支持字段。
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;
}
访问您的属性的代码将被编译为调用这两个方法之一。这正是为什么将公共字段更改为公共属性是一个突破性变化的原因之一。
参见Jon Skeet的Why Properties Matter。
https://stackoverflow.com/questions/23102639
复制相似问题