var僅僅是乙個關鍵字,它並不是c#3.0中的一種新的型別,而是負責告訴編譯器,該變數需要根據初始化表示式來推斷變數的型別
var可代替任何型別,編譯器會根據上下文來判斷你到底是想用什麼型別。至於什麼情況下用到var, 就是當你無法確定自己將用的是什麼型別就可以使用。
使用var定義變數時有以下特點:
1.在宣告時必須同時賦值,因為宣告依賴於賦值號右邊的表示式,如果有下面的語句:
var integer;
integer = 10;
編譯時會報implicitly typed locals must be initialized錯誤。
2.在使用var宣告乙個區域性變數後,它仍然具有強型別,可以做如下測試:
var integer = 10;
integer = " edisundong ";
編譯時會報cannot implicitly convert type 'string' to 'int'錯誤。
3. 初始化器表示式的編譯期型別不可以是空(null)型別,編譯器無法根據null來推斷出區域性變數的型別,如有下面的語句:
var integer = null;
編譯時會報cannot assign '' to an implicitly typed local錯誤。
4. 初始化語句必須是乙個表示式,初始化表示式不能包含它自身,但是可以是包含乙個物件或集合初始化器的乙個new表示式(即匿名型別)。
如可以這樣去宣告:
var coll = new hashtable();
6.var 不能用作方法的引數和返回型別。
C 的var關鍵字
var 是3.5新出的乙個定義變數的型別 其實也就是弱化型別的定義 var可代替任何型別 編譯器會根據上下文來判斷你到底是想用什麼型別的 至於什麼情況下用到var 我想就是你無法確定自己將用的是什麼型別就可以使用var 類似 object但是效率比object高點 使用var定義變數時有以下四個特點...
Linux Linux套接字簡要說明
linux套接字 源ip位址和目的ip位址以及源埠和目標埠號的組合稱為套接字。其作用於標識客戶端請求的伺服器和服務。套接字,支援tcp ip的網路通訊的基本操作單元,可以看做是不同主機之間的程序進行雙向通訊的端點 簡單的說就是通訊的兩方的一種約定,用套接字中的相關函式來完成通訊過程。非常非常簡單的舉...
C 中的var關鍵字
var 是3.5新出的乙個定義變數的型別 其實也就是弱化型別的定義 var可代替任何型別 編譯器會根據上下文來判斷你到底是想用什麼型別的 至於什麼情況下用到var 我想就是你無法確定自己將用的是什麼型別 就可以使用var 類似 object 但是效率比object高點。或者通俗的講 var可以理解為...