匿名类型

1.匿名类型其实也是比较好理解的,顾名思义匿名类型是没有类型定义的类型。这种类型是由编辑器自动生成的,仅限于当前上下文使用。

(1)源起

创建一个对象,一定要先定义这个对象的类型吗?

不一定的!

(2)使用

var Student1 = new { Name = "王清培", Age = 24, Sex = "男", Address = "江苏淮安" }; 
var Student2 = new { Name = "陈玉和", Age = 23, Sex = "女", Address = "江苏盐城" };

var obj = new {Guid.Empty, myTitle = "匿名类型", myOtherParam = new int[] { 1, 2, 3, 4 } };
Console.WriteLine(obj.Empty);//另一个对象的属性名字,被原封不动的拷贝到匿名对象中来了。
Console.WriteLine(obj.myTitle);
Console.ReadKey();

new关键字之后就直接为对象定义了属性,并且为这些属性赋值

而且,对象创建出来之后,在创建对象的方法中,还可以畅通无阻的访问对象的属性

当把一个对象的属性拷贝到匿名对象中时,可以不用显示的指定属性的名字,这时原始属性的名字会被“拷贝”到匿名对象中

(3)注意    

如果你监视变量obj,你会发现,obj的类型是Anonymous Type类型的

不要试图在创建匿名对象的方法外面去访问对象的属性!

(4)优点

这个特性在网站开发中,序列化和反序列化JSON对象时很有用

原文地址:https://www.cnblogs.com/cnki/p/5240822.html