为什么在创建对象时首选使用var关键字而不是实际类型?
var strList = new List<string>(); //good?
List<string> strList = new List<string>(); //why bad?
问题不只是关于List<T>
。
为什么在创建对象时首选使用var关键字而不是实际类型?
var strList = new List<string>(); //good?
List<string> strList = new List<string>(); //why bad?
问题不只是关于List<T>
。
var 关键字非常适合隐藏噪音。当你有这样的声明时
List<string> strList = new List<string>();
您可以确定 strList 是 List 类型。键入两次是浪费您的时间。如果您决定稍后更改类型,则必须在两个地方都进行更改。
我的偏好是在指定类型时始终使用 var已经明显指定了附近。当类型不重要时,我经常将 var 用于任何实例变量。
这不是一个var
好,另一个是坏的。这是一种个人喜好。
如果您希望我更具体,我认为您应该var
仅在类型完全明显时使用,例如:
var employee = new Employee();
另一方面,这可能是一个可怕的想法:
var e = GetEmployees();
因为很难判断 ife
是Employee
对象,还是 List、数组等。
当它为您节省一些精力而又不降低可读性时,使用它也可能是正确的:
ReallyLongClassName someidentifier = new ReallyLongClassName();
VS
var explanatoryIdentifier = new ReallyLongClassName();
但最后,这归结为个人喜好,如果您破坏可读性,请不要为您保存一些字符。
这只是一个很好的练习使用List<string> strList = new List<string>();
(显式输入)。它使代码更具可读性,但它们是等价的。
为什么 var 很好的论点是它消除了声明类型的重复。这意味着如果您想修改 strList(这是一个坏名字)的类型,您可以在一个地方进行。