Resharper当然这么认为,开箱即用它会唠叨你转换
Dooberry dooberry = new Dooberry();
至
var dooberry = new Dooberry();
这真的被认为是最好的风格吗?
这当然是一种风格问题,但我同意Dare:C#3.0隐式类型声明:要变量还是不变换?.我认为使用var而不是显式类型会使代码的可读性降低.在以下代码中:
var result = GetUserID();
结果是什么?一个int,一个字符串,一个GUID?是的,这很重要,不,我不应该通过代码来了解.它在代码示例中特别烦人.
杰夫写了一篇关于此的帖子,称他赞成var.但那家伙太疯狂了!
我看到了stackoverflow成功的模式:挖出旧的CodingHorror帖子和(Jeopardy风格)用问题来表达它们.
我只在很明显var是什么时使用它.
对我说清楚:
XmlNodeList itemList = rssNode.SelectNodes("item"); var rssItems = new RssItem[itemList.Count];
我不清楚:
var itemList = rssNode.SelectNodes("item"); var rssItems = new RssItem[itemList.Count];
我看到的答案的最佳总结是Eric Lippert的评论,它基本上说你应该使用具体类型,如果重要的是类型是什么,但不是以其他方式.基本类型信息应保留在类型重要的地方.
我公司的标准是在任何地方使用var,我们在阅读了各种推荐之后来到这里,然后花一些时间试一试,看看缺少带注释的类型信息是帮助还是障碍.我们觉得这是一个帮助.
人们与之相关的大多数建议(例如Dare的建议)是那些从未尝试使用var而不是具体类型进行编码的人提出的建议.这使得建议几乎毫无价值,因为它们不是根据经验说话,而是仅仅是推断.
我能给你的最好建议是亲自尝试,看看哪些对你和你的团队有用.