2010-09-24 68 views
2

可能重複:
Use of var keyword in C#使用VAR運營商,而不是類類型

我用的ReSharper在Visual Studio。每當我創建類實例resharper建議我使用var而不是確切類型的類。爲什麼使用var運算符更合適?

+2

我注意到,「VAR」是不是*運算符*。它是一個*局部變量類型說明符*。 – 2010-09-24 15:31:52

回答

1

對於初學者來說重複性較低。哪一個你更喜歡:

IDictionary<string, object> foo = new SortedDictionary<string, object>(); 

var foo = new SortedDictionary<string, object>(); 

就個人而言,我覺得後者更具有可讀性。

+2

是的,使用構造函數時。但是var foo = SomeFunction(someparameter);不太可讀。我喜歡以前好多了。 – 2010-09-24 06:42:50

5

ReSharper建議您通過context action使用var。

ReSharper中的上下文動作(通常由鉛筆圖標指定),非常類似於IntelliJ IDEA中的意圖動作,如果您願意,可以使用,但它不是強制性的。這與專門針對解決ReSharper發現的代碼問題的quick-fix(黃色或紅色燈泡)相反。

一次又一次ReSharper用戶在看到ReSharper建議使用var時會驚呆,然後(只要您接受該建議)再次建議使用顯式類型說明符。但是考慮到上下文動作的本質,擁有這種對立的上下文動作是完全正確的,而ReSharper有很多這樣的動作。

如果你不想ReSharper的顯示這個特定背景下的行動,你可以關閉它在ReSharper的>選項> [語言]>上下文行動

+0

順便說一句,在不同場景中使用或不使用var是可以使用ReSharper的代碼清理在批處理模式下強制執行的。 – gorohoroh 2010-09-26 10:51:21

+0

創建自定義代碼清理配置文件,將「局部變量聲明樣式」設置爲「僅在初始化程序具有類型用法時使用'var'」,然後將該配置文件應用於自定義選擇。詳情請參閱http://www.jetbrains.com/resharper/webhelp/Code_Cleanup__Creating_Custom_Profiles.html – gorohoroh 2010-09-26 10:52:49