CLR via C# 学习笔记(2012/3/6)

时间:2021-12-21 19:28:28

第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定义的类型是不可变的。


有参属性

也就是索引器,可以看作是[]的重载。