为什么在创建对象时,最好使用 var 关键字而不是实际类型?
var strList = new List<string>(); //good?
List<string> strList = new List<string>(); //why bad?
问题不只是关于List<T>
。
答案 0 :(得分:2)
var关键字非常适合隐藏噪音。当你有一个像
这样的陈述时List<string> strList = new List<string>();
您可以确定strList的类型为List。两次输入类型是浪费你的时间。如果您决定稍后更改类型,则必须在两个位置更改它。
我的偏好是在指定类型已明显指定在附近时始终使用var。当类型不重要时,我经常对任何实例变量使用var。
答案 1 :(得分:2)
var
不好,另一个不好。这是个人偏好。
如果您希望我更具体,我认为只有在类型完全明显时才应使用var
,例如:
var employee = new Employee();
另一方面,这可能是一个可怕的想法:
var e = GetEmployees();
因为很难判断e
是Employee
对象,还是列表,数组等等。
在不降低可读性的同时节省一些精力也可能正确使用它:
ReallyLongClassName someidentifier = new ReallyLongClassName();
VS
var explanatoryIdentifier = new ReallyLongClassName();
但最后,归结为个人偏好,只有不要如果你的可读性有损,请保存一些字符。
答案 2 :(得分:1)
使用List<string> strList = new List<string>();
(显式输入)只是一个好习惯。它使代码更易于可读,但它们是等效的。
答案 3 :(得分:1)
var为什么好的论据是它删除了声明类型的重复。这意味着如果要修改strList(这是一个坏名称)的类型,则可以在一个位置执行此操作。