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