2013-04-12 139 views
0

「VAR」如果我有一個字符串,我把它初始化爲的String.Empty,然後使用字符串初始化

var mystring=string.Empty; 

string mystring = string.Empty; 

使上述2個應該是更好的性能WRT或者其他的考慮?

+5

完全一樣。 – I4V

+2

[var(C#Reference)](http://msdn.microsoft.com/en-us/library/bb383973.aspx) –

+0

這是一回事,所以沒有區別 – V4Vendetta

回答

3

var隱式。它以C#編程語言中的任何類型進行別名。別名類型由C#編譯器確定。

var關鍵字具有相同的性能。 它不影響運行時行爲。

您的兩個代碼都會生成相同的IL代碼;

IL_0000: nop 
IL_0001: ldsfld  string [mscorlib]System.String::Empty 
IL_0006: stloc.0 
IL_0007: ret 
0

它們都編譯爲相同的IL代碼,因此在代碼執行期間沒有性能差異。

但是,第二個是更具可讀性,我會這樣。

+1

恭喜,我的風格總是在我可以的時候使用'var'。我認爲我們不同意,但推斷一個人在任何基礎上比另一個更好,而不是個人風格是假設的。 –

+0

我應該避免在初始化簡單類型時使用'var',比如'int','double'或'string',但正如你所說的,我只是一個意見。 – MarcinJuraszek

+1

我也是一個巨大的'var'迷:我不想關心類型,除非我必須,因爲編譯器足夠聰明以允許我。 – Alex