一 隐式类型的本地变量和数组
新的关键字var,声明变量相当于object类型,但是又更方便不需要类型转换
二 对象和集合初始值设定项
创建对象时初始化值
Cat cat = new Cat;
cat.Age = 10;
cat.Name = "Sylvester";
简化为
Cat cat = new Cat { Age = 10, Name = "Sylvester" };
利用这个特性还可以重命名LINQ
var productInfos =
from p in products
select new { p.ProductName, Price = p.UnitPrice };
集合初始值设定项
Cat c1 = new Cat();
c1.Name = "Sylvester";
c1.Age = 8;
List<Cat> cats = new List<Cat>
{
c1
};
简化为
List<Cat> cats = new List<Cat>
{
new Cat(){ Name="Sylvester", Age=8 },
new Cat(){ Name="Whiskers", Age=2},
null
};
将集合初始值设定项用于可为 null 的结构会导致编译时错误?
三 匿名类型
前两个特性综合一下。
既然
Cat cat = new Cat { Age = 10, Name = "Sylvester" };
那么
var cat = new Cat { Age = 10, Name = "Sylvester" };
也成立了。然后这就叫匿名类型。。。
主要是省去了类的定义,方便一次性使用。