2

为什么在创建对象时首选使用var关键字而不是实际类型?

var strList  = new List<string>(); //good?
List<string> strList  = new List<string>(); //why bad?

问题不只是关于List<T>

4

4 回答 4

2

var 关键字非常适合隐藏噪音。当你有这样的声明时

List<string> strList  = new List<string>();

您可以确定 strList 是 List 类型。键入两次是浪费您的时间。如果您决定稍后更改类型,则必须在两个地方都进行更改。

我的偏好是在指定类型时始终使用 var已经明显指定了附近。当类型不重要时,我经常将 var 用于任何实例变量。

于 2013-03-18T20:51:48.873 回答
2

这不是一个var好,另一个是坏的。这是一种个人喜好。

如果您希望我更具体,我认为您应该var仅在类型完全明显时使用,例如:

var employee = new Employee();

另一方面,这可能是一个可怕的想法:

var e = GetEmployees();

因为很难判断 ifeEmployee对象,还是 List、数组等。

当它为您节省一些精力而又不降低可读性时,使用它也可能是正确的:

ReallyLongClassName someidentifier = new ReallyLongClassName();

VS

var explanatoryIdentifier = new ReallyLongClassName();

但最后,这归结为个人喜好,如果您破坏可读性,请不要为您保存一些字符。

于 2013-03-18T20:57:03.847 回答
1

这只是一个很好的练习使用List<string> strList = new List<string>();(显式输入)。它使代码更具可读性,但它们是等价的。

于 2013-03-18T20:47:00.530 回答
1

为什么 var 很好的论点是它消除了声明类型的重复。这意味着如果您想修改 strList(这是一个坏名字)的类型,您可以在一个地方进行。

于 2013-03-18T20:50:55.000 回答