可能重复的问题:
var关键字有什么作用?
在C#中,使用var有哪些优势?
我总是看到其他人写出这样的代码:
var smtp = new SmtpClient();
但为什么在这种情况下要使用var
而不是SmtpClient
?我总是使用
SmtpClient smtp = new SmtpClient();
var
是否更有效率?为什么要使用var
而不是实际的变量类型?我是不是遗漏了什么?
可能重复的问题:
var关键字有什么作用?
在C#中,使用var有哪些优势?
我总是看到其他人写出这样的代码:
var smtp = new SmtpClient();
但为什么在这种情况下要使用var
而不是SmtpClient
?我总是使用
SmtpClient smtp = new SmtpClient();
var
是否更有效率?为什么要使用var
而不是实际的变量类型?我是不是遗漏了什么?
想象一下。
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
,但只用于长度声明。它只是语法糖。
不,这不是关于效率的问题,而只是关于代码编写风格的问题。
考虑到这是一种风格,这个规则并不能总是应用。
想象以下这段代码:
var myVar = Some3dPartFunction()
,myVar
的类型是什么?从代码风格的角度来看,这不是非常清晰和好的写法。
简而言之,要以聪明的方式选择适当的编写方式。
不,使用var
并不会更加高效。实际上,显式地声明变量类型是良好的编程习惯,比使用var
更易读。
因此:
var smtp = new SmtpClient();
并且:
SmtpClient smtp = new SmtpClient();
这两种不同的写法是指相同的事情。
这是一种语法糖:
var smtp = new SmtpClient();
等于:
SmtpClient smtp = new SmtpClient();
这是C# 3.0中的一个新功能,称为类型推断。