您好,登錄后才能下訂單哦!
本篇文章為大家展示了Linq中怎么實現隱式類型化局部變量,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
Linq隱式類型化局部變量
還有另一種語言功能被稱為Linq隱式類型化局部變量(或簡稱為 var),它負責指示編譯器推斷局部變量的類型。例如:
var integer = 1;
在此例中,整數具有 int 類型。請務必明白,這仍然是強類型。在動態語言中,整數的類型可在以后更改。為說明這一點,以下代碼不會成功編譯:
var integer = 1; integer = “hello”;
C# 編譯器將報告第二行的錯誤,表明無法將字符串隱式轉換為 int。在上述查詢示例中,我們現在可以編寫完整的賦值,如下所示:
var locals = customers.Where(c => c.ZipCode == 91822).Select(c => new {
FullName = c.FirstName + “ “ +c.LastName, HomeAddress = c.Address });
局部變量的類型最終成為 IEnumerable<?>,其中“?”是無法編寫的類型的名稱(因為它是匿名的)。
Linq隱式類型化局部變量只是:方法內部的局部變量。它們無法超出方法、屬性、索引器或其他塊的邊界,因為該類型無法顯式聲明,而且“var”對于字段或參數類型而言是非法的。
事實證明,Linq隱式類型化局部變量在查詢的環境之外非常便利。例如,它有助于簡化復雜的通用實例化:
var customerListLookup = new Dictionary<string, List<Customer>>();
現在我們的查詢取得了良好進展;我們已經接近理想的語法,而且我們是用通用語言功能來達成的。有趣的是,我們發現,隨著越來越多的人使用過此語法,經常會出現允許投影超越方法邊界的需求。如我們以前所看到的,這是可能的,只要從 Select 內部調用對象的構造函數來構建對象即可。
上述內容就是Linq中怎么實現隱式類型化局部變量,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。