C#3.0語言新特性之隱式類型

來源:互聯網
上載者:User

20.1 隱式類型

在C#3.0中增加了一個變數聲明var,這個聲明和JavaScript 的var類似,但 也有不同。相同之處是它可以用var來聲明任何類型的局部變數;而不同之處在 於它僅僅負責告訴編譯器,該變數需要根據初始設定式來推斷變數的類型,而 且只能是局部變數。

20.1.1 隱式類型局部變數的聲明與使用

在C# 3.0中,引進了一個新的關鍵字叫做var。var允許你聲明一個新變數, 它的類型是從用來初始化器變數的運算式裡隱式的推斷出來的,即在聲明時,你 不需要給它定義類型,它會根據它的初始化器運算式來推斷出它的類型。因此, 我們稱它為隱式類型。如你可以這樣來聲明變數:

var i = 10; //聲明一個局部變數。

這一行使用了10來初始設定變數i。注意這裡i被強型別到整型,它不是一個對 象或者VB6的變數,也不帶有其他對象或者變數的負載。

為了保證使用var關鍵字進行聲明的變數的強型別特性,C#3.0要求你必須對 變數賦初值(初始化),並且放到的同一行。同樣,初始化值必須是一個運算式 ,不能是一個對象或者collection初始化器,也不能為null 。如果多個聲明符 對同一個變數存在,那麼它們必須在編譯時間被看作為相同類型。

如下面的聲明都是合法的:

var i = 5;

var s = "Hello";

var a = new[] { 0, 1, 2 };

var expr =

      from c in customers

      where c.City == "London"

      select c;

var anon = new { Name = "Terry", Age = 34 };

var list = new List<int>();

最後我們需要瞭解的一點是,var 關鍵字並不意味著“變體”,也不表示 該變數是鬆散類型化變數或後期綁定變數。它只是表示由編譯器確定和分配最適 當的類型。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.