使用指令组织 [重复]

Posted

技术标签:

【中文标题】使用指令组织 [重复]【英文标题】:Organizing using directives [duplicate] 【发布时间】:2010-09-28 19:32:17 【问题描述】:

在过去的几个月里,我一直在使用 ReSharper,除了广告之外,如果没有它,我就无法看到自己在编码。由于我喜欢生活在流血的“到底出了什么问题”的边缘,我决定用最新的 ReSharper 4.5 nightly builds 试试我的运气。一切都很好。

但是,我注意到 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)

谢谢;

【问题讨论】:

【参考方案1】:

Scott 在他的帖子中继续发现,这两种情况之间运行时没有差异。因此,它用于延迟加载引用的目的。

如果你将 Scott 博客中的 cmets 一直读到最后,你还会看到将这个谣言传给 Scott(Mike Brown)的开发者说他只是听说过这个,并没有亲自测试过。

也就是说,如果您在命名空间内为类型设置别名,并且您有另一种类型,那么您放置 using 指令的位置可能会产生编译错误同名在命名空间中定义。但这当然不是运行时差异。

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

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

【讨论】:

有些标准是任意的,以使事情保持一致。使用 StyleCop 之类的东西有助于执行这些标准。允许一个团队有不同的标准(如“对每个人,他们自己的”)是为了让下一批编码员由于不一致而彻底陷入困境。 我当然理解编码标准的价值(以及非编码标准的价值,因为我是一名工程师)。但是,有些东西并不完全适合标准化;例如,将大括号放在 C 中的哪个位置。;-)【参考方案2】:

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

众所周知,我经常使用 ReSharper 的代码清理,所以说实话,我只是想知道。

【讨论】:

【参考方案3】:

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

【讨论】:

以上是关于使用指令组织 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

R的项目组织[重复]

如何使用 SVML 指令 [重复]

ng 使用自定义指令重复

使用指令将类添加到宿主元素[重复]

多个字段的@error Laravel 指令[重复]

使用 ng-model 获取文件输入的指令 [重复]