新聞中心
在向大家詳細介紹Linq隱式類型化局部變量之前,首先讓大家了解下編譯器推斷局部變量的類型,然后全面介紹。

成都創(chuàng)新互聯(lián)專注于成都做網(wǎng)站、網(wǎng)站制作、網(wǎng)頁設(shè)計、網(wǎng)站制作、網(wǎng)站開發(fā)。公司秉持“客戶至上,用心服務(wù)”的宗旨,從客戶的利益和觀點出發(fā),讓客戶在網(wǎng)絡(luò)營銷中找到自己的駐足之地。尊重和關(guān)懷每一位客戶,用嚴(yán)謹(jǐn)?shù)膽B(tài)度對待客戶,用專業(yè)的服務(wù)創(chuàng)造價值,成為客戶值得信賴的朋友,為客戶解除后顧之憂。
Linq隱式類型化局部變量
還有另一種語言功能被稱為Linq隱式類型化局部變量(或簡稱為 var),它負責(zé)指示編譯器推斷局部變量的類型。例如:
- var integer = 1;
在此例中,整數(shù)具有 int 類型。請務(wù)必明白,這仍然是強類型。在動態(tài)語言中,整數(shù)的類型可在以后更改。為說明這一點,以下代碼不會成功編譯:
- var integer = 1;
- integer = “hello”;
C# 編譯器將報告第二行的錯誤,表明無法將字符串隱式轉(zhuǎn)換為 int。在上述查詢示例中,我們現(xiàn)在可以編寫完整的賦值,如下所示:
- var locals = customers.Where(c => c.ZipCode == 91822).Select(c => new {
FullName = c.FirstName + “ “ +c.LastName, HomeAddress = c.Address });
局部變量的類型最終成為 IEnumerable>,其中“?”是無法編寫的類型的名稱(因為它是匿名的)。
Linq隱式類型化局部變量只是:方法內(nèi)部的局部變量。它們無法超出方法、屬性、索引器或其他塊的邊界,因為該類型無法顯式聲明,而且“var”對于字段或參數(shù)類型而言是非法的。
事實證明,Linq隱式類型化局部變量在查詢的環(huán)境之外非常便利。例如,它有助于簡化復(fù)雜的通用實例化:
- var customerListLookup = new Dictionary
, List > ();
現(xiàn)在我們的查詢?nèi)〉昧肆己眠M展;我們已經(jīng)接近理想的語法,而且我們是用通用語言功能來達成的。有趣的是,我們發(fā)現(xiàn),隨著越來越多的人使用過此語法,經(jīng)常會出現(xiàn)允許投影超越方法邊界的需求。如我們以前所看到的,這是可能的,只要從 Select 內(nèi)部調(diào)用對象的構(gòu)造函數(shù)來構(gòu)建對象即可。
新聞名稱:Linq隱式類型化局部變量
網(wǎng)頁路徑:http://www.dlmjj.cn/article/coisdoc.html


咨詢
建站咨詢
