有人发现除了LINQ之外还使用"var"吗?

moo*_*ogs 10 c# linq

只是好奇.我大约99.999%肯定没有...但是什么?

编辑:这些是好的答案(节省打字时间或使代码更简洁"可读性").我想我应该澄清"使用"的意思 - 一些没有"var"就无法完成的构造/设计.

Dar*_*o Z 24

在可读性方面哪个更好?

AReallyReallyLongBusinessObjectName obj = new AReallyReallyLongBusinessObjectName();
Run Code Online (Sandbox Code Playgroud)

要么

var obj = new AReallyReallyLongBusinessObjectName();
Run Code Online (Sandbox Code Playgroud)

我说在可读性方面,因为使用var对你的应用程序绝对没有影响,因为这两个语句在编译时生成相同的IL.

对编辑的回应:没有什么需要你使用var(除了匿名类型) - 它只是语法糖.

  • 可能是这样,但我不是说你应该*使用var,而是通过使用var给出一个更好的可读性的例子.在任何情况下,我都会争辩说,无论对象类名是什么,在var中实例化它都更具可读性. (2认同)

Sco*_*man 16

foreach经常在循环中使用它:

foreach(var item in collection)
Run Code Online (Sandbox Code Playgroud)


And*_*are 9

var对于匿名类型非常有用(没有它就不能创建一个).我也看到其他人通过类型推断使用它来减少输入和冗余类型信息.

我个人发现,当它用于减少输入时,它会损害可读性 - 请记住,您花费1%的时间编写代码,99%的时间阅读它.

// the compiler may be able to infer the type
// of "foo" but I certainly cannot without 
// viewing the implementation of "doSomething".
var foo = doSomething();
Run Code Online (Sandbox Code Playgroud)

编辑:要记住的主要事情(这对编码风格的所有问题都很常见)是你需要选择一种风格并持续使用它.只要你喜欢并且有理由使用它,你觉得它是合理的,那么你就赢了这场战斗:)