Organizing using directives
本问题已经有最佳答案,请猛点这里访问。
在过去的几个月里,我一直在使用Resharper,除了做广告外,没有它,我看不到自己在编码。因为我喜欢生活在流血的"到底出了什么问题"边缘,所以我决定试试我的运气,看看最新的Resharper 4.5每晚的版本。一切都很好。
但是,我注意到使用指令分组格式已经改变,我想知道哪一种更接近于一般标准:
[旧]
1 2 3 4 5 6 7 | #region Using directives using System.X; using System.Y; using System.Z; using System.A; #region namespace X { ... } |
[新]
1 2 3 4 5 6 7 8 9 | 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/backtobasicsDonamespaceusingdirectesaffectassemblyloading.aspx)
谢谢;
正如斯科特在他的文章中发现的那样,这两种情况之间没有运行时差异。因此,它不能用于延迟加载引用。
如果你一直读到斯科特博客的评论,你也会看到,把这个谣言传给斯科特(迈克·布朗)的开发人员说他只听说过这个,没有亲自测试过。
也就是说,如果为命名空间中的某个类型设置了别名,并且在命名空间中定义了另一个具有相同名称的类型,那么将using指令放在何处可能会产生编译器错误,从而产生影响。但这当然不是运行时的区别。
最后,我相信微软的编码指南说要像Resharper 4.5那样做。但盲目遵循这条规则是愚蠢的,"因为微软这么说",因为
嗯,通常是主观的。但是对我来说,通常是"老"的方式。
哦,糟透了。我在找那个问题的时候没有看到。我知道这样做很愚蠢,因为微软这么说,但一般来说,这种"通常"的做法是什么?
我知道我经常使用Resharper的代码清理,所以我只是想说实话。