日期:2014-05-18  浏览次数:20854 次

C# 关于属性的一个小问题
代码如下
public class Test
  {
  public string Name
  {
  get;
  set;
  }
  }

另一个类写
Test test = new Test() { Name = 3};
string a = test.Name;

这里a 的值是 3。

我是想问,一般情况下属性是和字段一起使用的,也就是说我只是把属性看做一个特殊的方法来对字段进行操作。

那么这个 3 是储存在哪里了 属性可以储存值? 难道是储存在SET的value?

------解决方案--------------------
自动属性。C#会自动创建一个私有变量保存。
------解决方案--------------------
编译器将创建一个私有的匿名后备字段,一下摘自帮助

当属性访问器中不需要其他逻辑时,自动实现的属性可使属性声明变得更加简洁。当您如下面的示例所示声明属性时,编译器将创建一个私有的匿名后备字段,该字段只能通过属性的 get 和 set 访问器进行访问。