我总是看到其他人生成如下代码:
var smtp = 新的 SmtpClient();
但是为什么在这种情况下使用var
而不是呢?SmtpClient
我总是用
SmtpClient smtp = new SmtpClient();
var
更有效率吗?为什么使用var
而不是实际的变量类型?我错过了什么吗?
我总是看到其他人生成如下代码:
var smtp = 新的 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>();
简单得多。的点与C++ 11var
中的相同auto
,编译器知道类型,所以我们为什么要如此重复自己。我个人var
很少使用,但仅用于冗长的声明。这只是语法糖。
不,这与效率无关,仅与代码编写风格有关。
考虑到它是关于一种风格的,这个规则不能总是适用。
想象以下片段:
var myVar = Some3dPartFunction()
, 是什么类型的myVar
?从代码风格的角度来看,以这种方式编写并不是很清楚,也不是很好。
总之,巧妙地选择合适的写作方式。
不,它不是更有效。明确地写类型是一样的。事实上,编写变量的类型而不是使用是好的编程,var
因为它使代码更具可读性。
所以:
var smtp = new SmtpClient();
和:
SmtpClient smtp = new SmtpClient();
是同一件事用两种不同的方式写的。
它是语法糖:
var smtp = new SmtpClient();
等于:
SmtpClient smtp = new SmtpClient();
这是 C# 3.0 中的一项新功能,称为类型推断。