回顾C#3.0新特性(1)

一 隐式类型的本地变量和数组

新的关键字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" };

也成立了。然后这就叫匿名类型。。。

主要是省去了类的定义,方便一次性使用。

原文地址:https://www.cnblogs.com/my36z/p/1403716.html