什么是var? 在.Net3.5(包括.NET CF3.5)以后C#提供了一個新的變量類型var,也就是我們俗稱的“推斷類型”,編譯器會根據上下文來判斷你到底是想用什么類型的;
var的使用場景? 當我們不知道一個變量是什么類型時,我們直接用var初始化就可以。比如我們不知道B是什么類型,我們可以直接使用var b=new B();我們就直接實例化了一個B。如果我們把斷點加到這句話上,我們運行完畢這句話后就可以知道B到底是什么類型了。
使用var時的注意事項:
- 必須在定義時初始化。也就是必須是var s = 1;形式,而不能是如下形式: var s; s = 1;
- 一但初始化完成,就不能再給變量賦與初始化值類型不同的值了。比如,var s=1;聲明后再有s="abc"是不支持的。
- var要求是局部變量,不能是全局變量。
- 使用var定義變量和object不同,它在效率上和使用強類型方式定義變量完全一樣。
其他語言中有和var功能類似的變量嗎? 我的回答是有,比如
VB中的Variant,他們都能什么變量都能放入。我甚至認為VB中的Variant就是var的“母親”。 Variant和var的不同點:var是類型安全的,Variant類型不安全。其實我覺得Variant和object更相似。
在其他那些語言中var在也是關鍵字? Pascal ,JavaScript,ASP,中也是關鍵字。
是否建議大量的使用var? 我的建議是知道明確類型的不要使用var,使用過多的VAR會導致我們代碼的可讀性降低。使用var時如果不知道類型就算了,當不確定是什么類型,卻有個推斷的時候可以加一句注釋。 不建議大量的使用var變量,這樣使我們的代碼可讀性降低,維護難度增加。