为什么我应该在可能的时候使用隐式类型(var)?

Tho*_*mas 4 c# implicit-typing

可能重复:
C#3.0中var关键字的优点

昨天我偶然发现MS的推荐,我应该尽可能使用var:

http://msdn.microsoft.com/en-us/library/ff926074.aspx

我一直认为使用正确的类型将有助于记录代码,并在编译时帮助查找错误.

这个推荐背后的原因是什么?

最佳托马斯

Hab*_*bib 7

那么建议有:

编码惯例 - 隐式类型局部变量

当从变量的右侧明显变量的类型时,或者当精确类型不重要时,对局部变量使用隐式类型.

它并非总是如此.

它还有:

如果从作业的右侧看不到类型,请不要使用var.

来自同一来源的示例:

// When the type of a variable is not clear from the context, use an 
// explicit type. 
int var4 = ExampleClass.ResultSoFar();
Run Code Online (Sandbox Code Playgroud)


Sco*_*rle 4

使用隐式类型并不意味着该变量不是强类型的。这意味着编译器隐含了语句右侧的类型。

var i = 1;
Run Code Online (Sandbox Code Playgroud)

i被定义为具有类型int。它与所说的完全相同int i = 1;,但隐含了类型。

同样,下面的代码更容易阅读:

var pairs = new List<pair<int, IEnumerable<string>>>();
Run Code Online (Sandbox Code Playgroud)

比你必须输入:

List<pair<int, IEnumerable<string>>> pairs = new List<pair<int, IEnumerable<string>>>();
Run Code Online (Sandbox Code Playgroud)

但结果却是完全一样的。