「转」C#自动属性的概念

上一篇 / 下一篇  2014-12-05 10:21:08 / 个人分类:C#

自定义信息
  • 出处:

  类的字段是通过属性来访问的;通过属性可以控制该字段的读写情况,更加安全;其次,自动属性这个是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# 自动属性生成的微软中间语言

  插入图片我刚找到,在写博客那个地方,有一个相册,先把图片上传到相册,然后再引用相册的地址就行了,我测试的结果和你的一样。


TAG:

 

评分:0

我来说两句

Open Toolbar