Should I *always* favour implictly typed local variables in C# 3.0?雷斯哈珀当然是这么想的,从盒子里它会让你改变信仰。
到
那真的被认为是最好的款式吗? 当然,这是一个风格问题,但我同意dare:c 3.0隐式类型声明:到var还是不到var?.I认为使用var而不是显式类型会降低代码的可读性。在以下代码中:
结果是什么?一个int,一个字符串,一个guid?是的,这很重要,不,我不应该为了知道而钻研代码。这在代码示例中尤其令人讨厌。 杰夫写了一篇关于这个的文章,说他喜欢var,但那个家伙疯了! 我看到了stackoverflow成功的模式:挖掘旧的编码恐怖帖子,然后(危险风格)用一个问题来表达它们。 我只在很明显什么是VaR时使用它。 我明白:
我不清楚:
对于这个问题,我所看到的答案最好的总结是埃里克·利珀特的评论,它本质上说,如果具体的类型很重要,你应该使用具体的类型,而不是其他类型。本质上,类型信息应该保留在类型重要的地方。 我公司的标准是在任何地方都使用var,这是我们在阅读了各种建议之后得出的,然后花一些时间尝试,看看缺少注释类型信息是一种帮助还是一种阻碍。我们觉得这是一种帮助。 人们联系到的大多数建议(例如,dare's的建议)都是由从未尝试过用var而不是具体类型编码的人提出的建议。这使得这些建议几乎一文不值,因为它们不是根据经验说话,它们只是推测而已。 我能给你的最好建议是亲自尝试,看看什么对你和你的团队有效。 @jongalloway-var不一定会使代码更不可读。
第一个和第二个一样可读,并且需要较少的工作
这里,有一点,var可以使代码的可读性变差。我喜欢var,因为如果我把一个小数改成double,就不必在一堆地方改变它(不要说重构,有时我会忘记,让我var!) 编辑:我同意,只要看一下文章。大声笑。 有一个很好的讨论这个@编码恐怖 就我个人而言,我尽量减少它的使用,我发现它会损害可读性,特别是当从方法调用中分配变量时。 我有一种感觉,随着时间的推移,这将是堆栈溢出问题中最流行的问题之一。归根结底就是偏好。无论你认为什么都更易读。当类型在右侧定义时,我更喜欢var,因为它更简洁。当我从方法调用中分配变量时,我使用显式类型声明。 只有当你事先不知道类型的时候才有意义。 像resharper这样的工具的一个优点是,您可以随意编写代码,然后让它重新格式化为更易于维护的代码。我将r设置为始终重新格式化,以便在编写代码时可以看到实际使用的类型,但我几乎总是键入"var"。 好的工具让你拥有两个世界中最好的。 厕所。
我请求无罪!但你是对的,这似乎是一个比较流行的小问题。 关于这个主题有一篇非常好的msdn文章,它概述了一些您不能使用var的情况: 以下限制适用于隐式类型变量声明:
我建议检查它,以了解在代码中使用var的全部含义。 不,不总是,但我会说很多时间。类型声明并没有比匈牙利符号更有用。您仍然面临着同样的问题,类型可能会发生变化,重构工具也有助于解决这一问题,因为与不必在指定类型的地方进行更改相比,重构工具并不理想,除非是在一个单独的地方,这遵循了"不要重复自己"的原则。 可以为变量及其值同时指定类型名称的任何单行语句都应绝对使用var,特别是当它是long generic "最佳风格"是主观的,根据上下文而不同。 有时,使用"var"比键入一些非常长的类名更容易,或者如果您不确定给定函数的返回类型。我发现在处理Linq或In-for循环声明时,更多地使用了"var"。 其他时候,使用完整类名比使用"var"更好地记录代码更有用。 我觉得由开发人员决定。没有银弹。没有"一条真正的路"。 干杯! |