可能重复:
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
而不是实际的变量类型?我错过了什么吗?
答案 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();
同样的事情是用两种不同的方式写的。