2013-04-12 97 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