提问人:hb. 提问时间:12/30/2008 更新时间:12/30/2008 访问量:844
使用指令进行组织 [duplicate]
Organizing using directives [duplicate]
问:
在过去的几个月里,我一直在使用 ReSharper,除了广告之外,如果没有它,我就无法看到自己在编码。由于我喜欢生活在流血的“到底出了什么问题”的边缘,我决定用最新的 ReSharper 4.5 夜间版本试试运气。一切都很好。
但是,我注意到 using 指令分组格式发生了变化,我想知道哪个更接近通用标准:
[旧]
#region Using directives
using System.X;
using System.Y;
using System.Z;
using System.A;
#region
namespace X { ... }
[新]
namespace X {
#region Using directives
using System.X;
using System.Y;
using System.Z;
using System.A;
#region
...
}
除了延迟加载引用之外,它还有什么特殊用途吗?(一直在阅读斯科特·汉塞尔曼(Scott Hanselman)对此的看法@http://www.hanselman.com/blog/BackToBasicsDoNamespaceUsingDirectivesAffectAssemblyLoading.aspx)
谢谢;
答:
正如 Scott 在他的帖子中继续发现的那样,这两种情况之间没有运行时差异。因此,它不能用于延迟加载引用。
如果你从头到尾都把Scott博客里的评论读到最后,你还会看到,把这个谣言传给Scott(Mike Brown)的开发者说,他只是听说过这个,并没有亲自测试过。
也就是说,如果在命名空间中为某个类型设置了别名,并且您在命名空间中定义了另一个具有相同名称的类型,则放置 using 指令的位置可能会有所不同,从而产生编译器错误。但这当然没有运行时差异。
最后,我相信 MS 编码指南说要像 ReSharper 4.5 那样做。但是盲目地遵循这条规则是愚蠢的,“因为 MS 是这么说的”,因为
- 事实证明,它没有带来任何好处。
- 你的团队(或你)通常的编码风格很可能不同。
评论
哦,我的错。当我搜索它时,我没有看到这个问题。我知道这样做很愚蠢,因为 MS 是这么说的,但总的来说,对此的“通常”方法是什么?
众所周知,我经常使用 ReSharper 的代码清理,所以老实说,我只是想知道。
好吧,通常都是主观的。:)但对我来说,通常的是“旧”方式。
评论