为什么使用 var 而不是类名

本文关键字:var 为什么 | 更新日期: 2023-09-27 18:34:05

可能的重复项:
var关键字的意义何在?
在 C# 中使用 var 与显式类型相比有什么优势?

我总是看到其他人生成这样的代码:

var smtp = new SmtpClient();

但是在这种情况下,为什么要使用var而不是SmtpClient呢?我总是使用

SmtpClient smtp = new SmtpClient();

var更有效率吗?为什么使用 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 smtp = new SmtpClient();

和:

SmtpClient smtp = new SmtpClient();

同一件事是用两种不同的方式写的。

它是句法糖:

var smtp = new SmtpClient(); 

等于:

SmtpClient smtp = new SmtpClient();

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