var關鍵字是c#3.0開始新增的特性,稱為推斷型別(其實也就是弱化型別的定義) 。
var可代替任何型別,編譯器會根據上下文來判斷你到底是想用什麼型別,類似 object,但是效率比object高點。
我們可以賦予區域性變數推斷「型別」var而不是顯式型別。var 關鍵字指示編譯器根據初始化語句右側的表示式推斷變數的型別。推斷型別可以是內建型別、匿名型別、使用者定義型別、.net framework 類庫中定義的型別或任何表示式。
示例:原先定義變數,是要這樣: 資料型別 變數名 = 值;
如: int a = 1;
string b ="2";
也就是說,"必須先明確地"指定你的變數是什麼資料型別,才能給它賦值.這點很重要,要記住才好比較.
現在在c# 3.0裡,有了變化,就是可以不用像上面那樣定義變數了.
如:var a =1 ;
ide或編譯器會根據你給a 的值:1,來"推論,斷定"a是乙個整數型別.
同理:var b ="2";
因為給b的值是"2"這樣乙個字串,所以,b就是string型別...
ps.當你無法確定自己將用的是什麼型別,就可以使用var
使用var定義變數時有以下四個特點:
1. 必須在定義時初始化。也就是必須是var s = 「abcd」形式,而不能是如下形式:
var s;
s = 「abcd」;
2. 一但初始化完成,就不能再給變數賦與初始化值型別不同的值了。
3. var要求是區域性變數。
4. 使用var定義變數和object不同,它在效率上和使用強型別方式定義變數完全一樣。
C 中的Var型別
傳統定義變數是已經知道變數的型別,如 int a 1 string b qwer 用var型別預先不用知道變數的型別 根據你給變數賦值來判定變數屬於什麼型別 如 var a 1 則a是整型,var a qwer 則a是字元型,但使用var型別要注意 1 必須在定義時初始化,即不能先定義後初始化,如 ...
C 使用 var 型別注意的問題
var 關鍵字是c 3.0新增的特性,稱為推斷型別。也就是說 var 可以替代所有型別,因為編譯器會推斷出你這裡應該使用的型別,但是需要注意的是 1 var 的所修飾的變數必須是區域性變數 2 var 修改的變數必須在定義的時候初始化 3 一旦 var 修飾的變數初始化完成,就不能再給變數賦予跟初始...
型別推斷 var
型別推斷 type inference 使用 var 關鍵字。編譯器可以根據變數的初始化值 推斷 變數的型別。例如 int number 0 就可以寫成 var number 0 編譯器可以 推斷 出變數number為int型別。上面兩個語句是等價的。var name bu iancai var a...