当前位置:  开发笔记 > 编程语言 > 正文

我应该*总是*支持在C#3.0中隐含类型的局部变量吗?

如何解决《我应该*总是*支持在C#3.0中隐含类型的局部变量吗?》经验,为你挑选了3个好方法。

Resharper当然这么认为,开箱即用它会唠叨你转换

Dooberry dooberry = new Dooberry();

var dooberry = new Dooberry();

这真的被认为是最好的风格吗?



1> Jon Galloway..:

这当然是一种风格问题,但我同意Dare:C#3.0隐式类型声明:要变量还是不变换?.我认为使用var而不是显式类型会使代码的可读性降低.在以下代码中:

var result = GetUserID();

结果是什么?一个int,一个字符串,一个GUID?是的,这很重要,不,我不应该通过代码来了解.它在代码示例中特别烦人.

杰夫写了一篇关于此的帖子,称他赞成var.但那家伙太疯狂了!

我看到了stackoverflow成功的模式:挖出旧的CodingHorror帖子和(Jeopardy风格)用问题来表达它们.


为什么不修改变量的名称而不是抱怨var?var userID = GetUserID(); 如果userID是string或int,它实际上并不是非常重要,它是识别用户并且应该被相关函数接受的东西.

2> sieben..:

我只在很明显var是什么时使用它.

对我说清楚:

XmlNodeList itemList = rssNode.SelectNodes("item");
var rssItems = new RssItem[itemList.Count];

我不清楚:

var itemList = rssNode.SelectNodes("item");
var rssItems = new RssItem[itemList.Count];



3> Greg Beech..:

我看到的答案的最佳总结是Eric Lippert的评论,它基本上说你应该使用具体类型,如果重要的是类型是什么,但不是以其他方式.基本类型信息应保留在类型重要的地方.

我公司的标准是在任何地方使用var,我们在阅读了各种推荐之后来到这里,然后花一些时间试一试,看看缺少带注释的类型信息是帮助还是障碍.我们觉得这是一个帮助.

人们与之相关的大多数建议(例如Dare的建议)是那些从未尝试使用var而不是具体类型进行编码的人提出的建议.这使得建议几乎毫无价值,因为它们不是根据经验说话,而是仅仅是推断.

我能给你的最好建议是亲自尝试,看看哪些对你和你的团队有用.

推荐阅读
个性2402852463
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有