第10章 属性
这一章比较简单,而且内容比较少,就随便写些吧。
属性主要分为无参和有参两种,无参就是我们平时所说的“属性",有参指的是索引器。
属性的本质其实就是方法,只是属性看上去简洁一些。同时通过属性,能够比较简单地实现只读或只写属性。
属性不能作为out 或ref 参数传给方法。
C#支持集合初始化器,下面是一个例子:
Employee e = new Employee() { Name = "liang", Age = 24 };
上面的代码等价于:
Employee e = new Employee();
e.Name = "liang";
e.Age = 24;
能够减少我们的代码量,并且清晰很多,C#还允许省略起始的大括号之前的圆括号,如果调用的是无参构造器。
匿名类型
var关键字定义的类型是匿名类型,这是不可变的。通常用于LINQ,LINQ to Object能够很方便地操作内存。假如没有具体的类型,或者没有调用ToList()方法,因为LINQ的延迟执行性质,实质的内容还是保存在原本的内存中,没有分配新的内存空间,可能是出于安全性考虑,var定义的类型是不可变的。
有参属性
也就是索引器,可以看作是[]的重载。