.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编译器在调试代码时不会内联属性方法。
Android 成长之路

浙公网安备 33010602011771号