C#隱含類型局部變量淺析
C# 3.0新語言特性有很多值得學(xué)習(xí)的地方,這里我們主要介紹C#隱含類型局部變量,包括介紹C#隱含類型局部變量要點(diǎn)等方面。
總體來說,Visual Studio 2008和.NET 3.5是建立在.NET2.0核心的基礎(chǔ)之上,.NET2.0核心本身將不再變化(如果不了解.NET2.0的朋友,請(qǐng)參看MSDN或者一些經(jīng)典的書籍),C# 3.0新語言特性在.NET2.0基礎(chǔ)上進(jìn)行了改進(jìn),這些改進(jìn)的功能可以大大簡化我們編寫程序。關(guān)于C# 3.0新語言特性在博客園里的很多朋友都介紹了,我在這里簡單介紹一下,記錄自己所學(xué)的東西,也為后面的LINQ打下基礎(chǔ)。
C# 3.0新語言特性和改進(jìn)包括:
◆自動(dòng)屬性(Auto-Implemented Properties)
◆隱含類型局部變量(Local Variable Type Inference)
◆匿名類型(Anonymous Types)
◆對(duì)象與集合初始化器(Object and Collection Initializers)
◆擴(kuò)展方法(Extension Methods)
◆Lambda表達(dá)式和Lambda表達(dá)式樹 (Lambda Expression and Lambda Expression Trees)
C#隱含類型局部變量(Local Variable Type Inference)
C#3.0引進(jìn)了var這個(gè)新關(guān)鍵字,在聲明局部變量時(shí)可用于替代原先的類型名,即當(dāng)一個(gè)變量聲明標(biāo)識(shí)為var類型并且該范圍域中沒有var名稱類型存在,那么這個(gè)聲明就稱為隱含類型局部變量。如下(等同于//后面的顯式聲明):
- var i = 5;//int
- var j = 23.56;//double
- var k = "C Sharp";//string
- var x;//錯(cuò)誤
- var y = null;//錯(cuò)誤
- var z = { 1, 2, 3 };//錯(cuò)誤
在調(diào)試狀態(tài)下,編譯器解釋如下
C#隱含類型局部變量要點(diǎn):
1. var為關(guān)鍵字,可以根據(jù)后面的初始化語句自動(dòng)推斷類型,這個(gè)類型為強(qiáng)類型。
2. 初始化語句必須為表達(dá)式,不可以為空。且編譯時(shí)可以推斷類型。一旦初始化之后,只可以存儲(chǔ)這種類型。
3. var聲明的僅限于局部變量,不可用于字段。亦可以用于for,foreach,using 等語句中。
4. 數(shù)組也可以作為隱含類型。
5. 初始化語句不能是一個(gè)自身的對(duì)象或者集合初始化器,但是他可以是包含一個(gè)對(duì)象或者初始化器的一個(gè)new表達(dá)式。
6. 如果局部變量聲明包含了多個(gè)聲明符,其類型必須相同。
【編輯推薦】