何谓匿名类,其实本质和普通定义的类一样,只不过是由系统的编译器来完成的,首先举个例子。
一般情况
//声明一个类,包含贴别多的字段 public class Person() { public string Name{set;ge;} public int Age{set;get;} . . . . . } //实例化和初始化 Person person=new Person(); person.Name="喜羊羊"; person.Age="懒洋洋"; 。 。 。 。
可以看出,当字段特别多的时候,太麻烦了,所以c#3.0提供了匿名类。语法是 var 名字=new {字段赋值};
其中var在c#中和在javascript中是不同的,c#中只是作为推断,根据赋值推断出类型,隐式类型 var。 隐式类型的本地变量是强类型变量(就好像您已经声明该类型一样),但由编译器确定类型。
1)var类型的值必须是局部变量或静态变量
2)var变量在声明之前必须被初始化
3)变量的值不能为null(这样编译器就不能判断类型了)
4)var变量不能为一个方法或方法组
5)不能用来声明参数类型
javascript中var类型不做判断,什么类型都可以,这个变量是什么类型的(比如String,int,double等)不做严格的限定。
//匿名类;声明一个类#3.0,相当于把类初始化和对象声明放在一起 var news = new { title="特大喜讯",author="夕阳眼",postdate="3013-10-9",msg="今晚公布"};