C#3.0新特性――隱含類型局部變數和匿名型別

來源:互聯網
上載者:User

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();

我們可以把更多的時間用在軟體功能的實現上而不是敲代碼上。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.