为什么使用var而不是类名?

时间:2012-05-13 14:55:28

标签: c# variables var

  

可能重复:
  What's the point of the var keyword?
  What advantages does using var have over the explicit type in C#?

我总是看到其他人生成如下代码:

  

var smtp = new SmtpClient();

但为什么在这种情况下使用var代替SmtpClient?我总是使用

  

SmtpClient smtp = new SmtpClient();

var效率更高吗?为什么使用var而不是实际的变量类型?我错过了什么吗?

4 个答案:

答案 0 :(得分:19)

想象一下。

Dictionary<Dictionary<String, String>, String> items = new Dictionary<Dictionary<String, String>, String>();

var对于类似的事情非常有用。

var items = new Dictionary<Dictionary<String, String>, String>();

更简单。 var的点与C ++ 11中的auto相同,编译器知道类型,为什么我们必须重复这么多。我个人很少使用var,但仅用于冗长的声明。这只是语法糖。

答案 1 :(得分:18)

不,这不是关于效率,而是关于代码编写风格。

考虑到它是关于样式,此规则无法应用始终

依次宣传依照:

var myVar = Some3dPartFunction()myVar类型是什么? 从代码风格的角度来看,以这种方式写作并不是绝对清楚,也不是很好。

简而言之,选择适当的写作方式。

答案 2 :(得分:2)

这是句法糖:

var smtp = new SmtpClient(); 

等于:

SmtpClient smtp = new SmtpClient();

这是C#3.0中的一个新功能,称为类型推断。

答案 3 :(得分:1)

不,它不是更有效率。明确写出类型是一样的。事实上,编写变量的类型而不是使用var是很好的编程,因为它使代码更具可读性。

所以:

var smtp = new SmtpClient();

SmtpClient smtp = new SmtpClient();

同样的事情是用两种不同的方式写的。