应该明确地还是隐式地输入变量?

时间:2012-06-18 23:02:22

标签: c# variables

他们说不应该用两个计时器出海,或者戴两块手表。你应该使用一个可靠的,或者三个(或更多)来让"多数人统治。"

那么,我应该安装另一个代码重构帮助器,还是卸载其中一个?我安装了两个,他们在这行代码上来回争吵:

using (StreamReader file = new StreamReader(ChemicalMakeupOfEveryDropOfWaterInTheMississippi))

......应该是这样的:

using (var file = new StreamReader(ChemicalMakeupOfEveryDropOfWaterInTheBigMuddy))

如果我明确指定了类型,带有灯泡装订线图标的工具会告诉我:

"使用隐式类型的局部变量声明|使用' var'"

如果我默认并允许它将显式转换为隐式,则另一个工具(在装订线中带有铅笔图标的工具)管道并说,"明确指定类型"并改变了' var'返回' StreamReader'

我被困在一个无限循环中,将显式更改为隐式,然后再返回。我对此的看法并不重要,但我将这个难题抛到了StackOverflow人群的智慧之上。

4 个答案:

答案 0 :(得分:3)

我更喜欢显式类型变量,它们允许读者更快地掌握代码的作用。它们还有助于在编码时实施更严格的类型安全(来自阅读代码的人的观点),这有助于防止在开发过程中由于不确切知道正在使用的类型而导致的大量错误。

我认为应该使用隐式类型变量的唯一时间是在linq查询期间返回各种匿名类型时。

答案 1 :(得分:1)

没有区别。您可以使用这两个版本。

答案 2 :(得分:1)

除非声明占用不合理的空间,过于复杂,或者您不确定类型是什么,否则应明确键入。它通常可以提高可读性,并使逻辑更易于遵循。

但是,如果遇到任何提到的异常,请使用隐式类型,因为它会提高可读性。

当你有中间结果时,

Var也适用于对集合进行排序。

答案 3 :(得分:1)

卸载或重新配置其中一个,这非常多。我更喜欢明确的地方,但那只是我....