.NET 属性笔记

  一个继承IEnumerable的只读属性,那么就能去将这个属性去重新new一个,但是还可以对该属性中的项进行读写操作。我的理解是可读可写只是相对于这个属性分配的地址不可写,而属性中的项还是可读可写的。
    以下是例子:

 1  public class PropertyDemo
 2     {
 3         private List<string> namelist = new List<string>();
 4         public List<string> NameList
 5         {
 6             get { return namelist; }
 7         }
 8        
 9     }
10 
11  static void Main(string[] args)
12         {
13             PropertyDemo pd = new PropertyDemo { NameList = { "liende","wuwuliang"} };
14 
15             pd.NameList.Add("df");
16 
17             Console.ReadKey();
18         }

 调用属性访问器方法时的性能

  对于简单的get和set访问器方法,JIT编译器会将代码内联(inline)。这样一来,使用属性(而不是字段)就没有性能上的损失。内联是指将一个方法(或者当前情况下的访问器方法)的代码直接编译到调用它的方法中。这样便避免了在运行时发出调用是所产生的开销,代价是编译好的方法的代码会变得更大。由于属性访问器方法通常只包含极少的代码,所以对它们进行内联,反而会使最终生成的本地代码变得更加小,而且执行速度快。需要注意的是,JITI编译器在调试代码时不会内联属性方法。

 

 

posted @ 2013-03-03 14:39  转身就是一辈子  阅读(62)  评论(0)    收藏  举报