Nat*_*lor 10 c# scope using-statement
我注意到很多东西来回的一件事是将使用语句放在C#代码文件中 - 无论是在最外层还是在命名空间内.我理解using语句的位置会影响该文件中引用的范围,但我不明白的是,在大多数情况下,有人会想要在其命名空间中使用它们的using语句.
在几乎所有情况下,单个文件中只存在一个名称空间声明,因此使用using语句的范围似乎/(是?)无效.如果一个人在同一个文件中放置了多个类型和多个命名空间,那么使用语句进行范围化就很有意义了,但即使在具有一个命名空间的文件中,我仍然会看到很多这种情况.为什么?
using System;
namespace MyNamespace
{
using System.Text;
public class MyClass {
// ...
}
}
Run Code Online (Sandbox Code Playgroud)
在整个项目中,看似不必要的一个例子是ASP.NET MVC源代码.
Jim*_*m W 13
将"using"放在文件的顶部是Visual Studio的默认方式.但是,建议的方法是在命名空间中放置"using"语句.甚至MS的stylecop也抓住了这个,并说VS的默认方式是错误的.
这两种技术都很好.
StyleCop规则说: 在单个文件中放置多个名称空间元素通常是一个坏主意,但是如果这样做,最好将所有使用指令放在每个名称空间元素中,而不是全局放在顶部.文件.这将严格限定命名空间的范围,并且还有助于避免上述类型的行为.
重要的是要注意,当使用位于命名空间之外的using指令编写代码时,在命名空间中移动这些指令时应小心,以确保这不会改变代码的语义.如上所述,在namespace元素中放置using-alias指令允许编译器以指令放置在命名空间之外时不会发生的方式在冲突类型之间进行选择.
以下是一些进一步审查的链接:
| 归档时间: |
|
| 查看次数: |
6386 次 |
| 最近记录: |