使用指令组织

时间:2008-12-30 05:44:53

标签: c# coding-style using-directives

过去几个月我一直在使用ReSharper,除了广告之外,如果没有它,我看不到自己编码。因为我喜欢生活在流血的“什么地狱出错”的边缘,所以我决定试试我的运气w /最新的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
...
}

除了延迟加载引用外,它是否有任何特殊用途? (正在阅读斯科特汉塞尔曼对这个@ http://www.hanselman.com/blog/BackToBasicsDoNamespaceUsingDirectivesAffectAssemblyLoading.aspx)的看法

感谢;

3 个答案:

答案 0 :(得分:6)

正如斯科特在他的帖子中发现的那样,这两种情况之间存在没有运行时差异。因此,用于延迟加载引用的目的。

如果你一直看到斯科特博客中的评论,你也会看到将这个传闻传给斯科特(迈克布朗)的开发人员说,他只听说过这个,而不是自己测试过。< / p>

也就是说,如果你在命名空间中为类型设置别名,并且你有另一种类型,那么放置using指令的位置可能会因编译器错误而产生影响名称空间中定义的具有相同的名称。但那当然没有运行时间差异。

最后,我相信MS编码指南会像ReSharper 4.5那样做。但盲目地遵循这条规则是“愚蠢的”,因为MS说的是这样,因为

  1. 事实证明它没有任何好处。
  2. 您的团队(或您的)通常的编码风格可能会有所不同。

答案 1 :(得分:1)

嗯,通常是主观的。 :)但对我来说,通常是“老”的方式。

答案 2 :(得分:0)

哦,我的坏。当我搜索它时,我没有看到这个问题。我知道这样做是愚蠢的,因为MS说的是这样,但总的来说,这是什么“通常”的做法?

我知道使用ReSharper的代码清理很多,所以我只是想知道,说实话。