'var'表示清楚
关于是否使用var关键字的主要争论是关于代码对您和其他开发人员的可读性。
就像你在写一个故事一样,没有明确的正确答案。但是让我们看一些简单英语中的例子。
杰克向比尔问好。他不喜欢他,所以转身朝另一个方向走了。
谁走了另一条路?杰克还是比尔?在本例中,使用名称“Jake”和“Bill”就像使用类型名称一样。"He"和"him"就像使用var关键字。在这种情况下,说得更具体可能会有所帮助。下面的例子就清楚多了。
杰克向比尔问好。杰克不喜欢比尔,所以他转身朝另一个方向去了。
在这种情况下,越具体句子越清晰。但情况并非总是如此。在某些情况下,说得太具体会让人更难理解。
比尔喜欢书,所以比尔去了图书馆,比尔拿出了一本比尔一直喜欢的书。
在这种情况下,如果我们使用“he”,在某些情况下将他的名字一起省略,这相当于使用var关键字,将更容易阅读句子。
比尔喜欢书,所以他去了图书馆,拿出了一本他一直喜欢的书。
这些例子涵盖了要点,但并不能说明全部问题。在这些例子中,只有一种方式来指代这个人。要么使用他们的名字,要么使用更笼统的术语,比如“他”和“他”。
对于代码,我们有三种方法来帮助增加清晰度。类型、变量名和赋值。以这行代码为例:
Person p = GetPerson();
现在的问题是,这行代码中是否有足够的信息来帮助您弄清楚发生了什么?
下面这行代码呢?在这种情况下,你还知道p的意思吗?
var p = GetPerson();
现在怎么样:
var p = Get();
或者现在:
var person = Get();
或者这个:
var t = GetPerson();
或:
var u = Person.Get();
关键字var在给定场景中是否有效在很大程度上取决于代码的上下文,比如变量、类和方法的命名方式。它还取决于代码的复杂性以及围绕它的其余代码。
就我个人而言,我喜欢使用var关键字,它在大多数时候对我来说更全面。但我也倾向于用类型来命名变量这样就不会丢失任何信息。
这就是说,有时我会根据上下文做出例外,这就是任何复杂事物的本质,软件如果不复杂就什么都不是。