何謂匿名類,其實本質和普通定義的類一樣,只不過是由系統的編譯器來完成的,首先舉個例子。
一般情況
//聲明一個類,包含貼別多的字段 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="今晚公布"};