为什么更喜欢var strList = new List <string>(); over List <string> strList = new List <string>();?</string> </string> </string>

时间:2013-03-18 20:45:17

标签: c# coding-style var

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

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

问题不只是关于List<T>

4 个答案:

答案 0 :(得分:2)

var关键字非常适合隐藏噪音。当你有一个像

这样的陈述时
List<string> strList  = new List<string>();

您可以确定strList的类型为List。两次输入类型是浪费你的时间。如果您决定稍后更改类型,则必须在两个位置更改它。

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

答案 1 :(得分:2)

var不好,另一个不好。这是个人偏好。

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

var employee = new Employee();

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

var e = GetEmployees();

因为很难判断eEmployee对象,还是列表,数组等等。

在不降低可读性的同时节省一些精力也可能正确使用它:

ReallyLongClassName someidentifier = new ReallyLongClassName();

VS

var explanatoryIdentifier = new ReallyLongClassName();

但最后,归结为个人偏好,只有不要如果你的可读性有损,请保存一些字符。

答案 2 :(得分:1)

使用List<string> strList = new List<string>();(显式输入)只是一个好习惯。它使代码更易于可读,但它们是等效的。

答案 3 :(得分:1)

var为什么好的论据是它删除了声明类型的重复。这意味着如果要修改strList(这是一个坏名称)的类型,则可以在一个位置执行此操作。