类的字段是通过属性来访问的;通过属性可以控制该字段的读写情况,更加安全;其次,自动属性这个是C#的语言特性,跟语法是没关系的,就相当于内部帮阿你做好了,但是界面上面没有显示罢了;如:
View Code
class person1
{
private string _name;
private int _age;
public String Name
{
get { return _name; }
set { _name = value; }
}
public int Age
{
get { return _age; }
set { _age = value; }
}
}
跟
class person2
{
public String Name { get; set; }
public int Age { get; set; }
}
这两个类,后面是自动属性的,在编译为il的时候 再看两个类的信息:
不好意思,这里不会用这个编辑器插入图片,见谅啊,用il dasm 工具查看
person1的字段_age是常规的 .field private int32 _age
这个时候person2也生产了一个对应的字段哦(根据属性) .field private int32 '<Age>k__BackingField' C#编译器为这个类自动生成的一个字段,应该可以说明问题了吧 呵呵
Devin Mao | 小虾三级 |园豆:556 | 2011-09-02 15:04
嗯,我写了两个类测试了一下,il 反汇编程序,又学到一个新东西。il Dasm 好东西啊!
1 public class Class1
2 {
3 private string _Name;
4
5 public string Name
6 {
7 get { return _Name; }
8 set { _Name = value; }
9 }
10 }
11
12 public class Class2
13 {
14 public string Name { get; set; }
15 }
下面这个是编译的exe文件
C# 自动属性生成的微软中间语言
插入图片我刚找到,在写博客那个地方,有一个相册,先把图片上传到相册,然后再引用相册的地址就行了,我测试的结果和你的一样。