摘要:[C#]使用 var 關鍵字宣告隱含型別
Introduction
這是 C# 3.0 的產物,到底有多好用,聽說在 「匿名型別」與「LINQ」發光發熱。
有人說它很像 javascript、vb6...。
Example
var i = 4 ; var j = 3; var k = i + j;
這邊答案會是 7 ,編譯器會依據設定的數值來自動判定變數可能的型態,也因為它是依據初始值來判定型別,
所以宣告隱含型別的同時也必須給定初始值,若是寫成如下會出現錯誤:
var i; var j;
也因為上述情形,所以宣告為隱含型別的變數,其實是靜態繫結的變數,也就是在編譯時期就已經決定變數型別了。
也可這樣使用:
var numbers = new[] { 1, 2, 3, 4 }; foreach (var x in numbers) { Console.WriteLine(x); }
注意,宣告為隱含型別的陣列,裡面的元素必須都是同一個型別,比方說都為 int (整數) ,或是都為 string (字串),
不然編譯不會過。
其他注意事項
- 隱含型別只可用在區域變數。
每一個 var 宣告只能有一個變數,所以你不能這樣寫:
var n1 = 5, n2 = 7; // 編譯錯誤
也不可出現在 Method 的參數中,所以你不能這樣寫:
private void Test(var item){} //編譯錯誤
何時使用 var ?
有人說,這是為了討好原本 VB 6.0 的客戶(小弟我只看過 VB.NET 但沒寫過)
- 一般來說是減少程式碼長度?見人見智。
- 用在 LINQ (這部分我再來研究)。
- 用在匿名型別時(這部分我慢慢研究)。
參考資料
補充:
1.發現 Huan-Lin 學習筆記 也有貼這類的文章,我覺得不錯,文後下方的注意事項值得注意。
三小俠 小弟獻醜,歡迎指教