C#3.0引進新關鍵字var,它是一個類型,可以用來聲明局部變數。
Code
var I = 1; //int類型
var j = ”reallypride”; //string類型
var k = new[] { 1, 2, 3, 4 }; //int[]類型
var x; //錯誤,必須初始化
var y = null; //錯誤,不可以為空白
使用var變數要點:
1.使用var聲明局部變數,編譯器會根據後面的初始設定式自動推斷變數的類型,這個類型是強型別。
2.var變數在聲明時必須初始化,不可以為空白,且編譯時間可以推斷其類型。初始化後變數只能儲存這種類型。
3.數組也可以作為var類型。
匿名型別
匿名型別允許定義行內類型,不須顯示宣告類型。常和var一起使用。如
Code
var p1 = new { name = ”reallypride”, age = 23 };
var p2 = new { name = “jingxuan”, age = 23 };
編譯器會自動定義一個包含name和age屬性的類。p1和p2結構相同,是同一個類的執行個體。我們再定義一個變數:
Code
var p3 = new { age = 23, name = “reallypride” };
編譯器會建立一個新的類,也就是p3和p1,p2不是同一個類的執行個體,因為p3聲明屬性的位置不相同。
{ }是匿名初始化器。
如果要定義數組,可以這樣定義:
Code
var intArray = new[] { 1, 2, 3, 4 };
var strArray = new[] { “a”, “b”, “c” };
var someTypeArray = new[] { new { name = “reallypride”, age = 23 }, new { name = “jingxuan”, age = 23 } };
匿名型別要點:
1.可以使用new關鍵字調用匿名初始化器建立一個匿名型別。
2.匿名型別直接繼承自System.Object。
3.匿名型別的屬性是編譯器根據初始化器自動推斷。
或許有人會覺得,有了var這個關鍵字後,其它的類型關鍵字都變成多餘的了。
其實var是簡化了我們的編程,讓我們不用再因為定義一個變數而需要寫兩次它的類型。
如定義一個User類的執行個體,以前的方法我們要這樣定義:
Code
User user=new User();
而現在我們可以這樣定義:
Code
var user=new User();
我們可以把更多的時間用在軟體功能的實現上而不是敲代碼上。