在C#代码文件中,使用语句应该放在最外层作用域还是放在命名空间内部这个问题一直存在争议。我知道使用语句的位置会影响文件中引用的范围,但我不明白为什么在大多数情况下,有人会想要把使用语句放在命名空间内部。
几乎所有情况下,单个文件中只存在一个命名空间声明,因此对使用语句进行作用域限定似乎是没有意义的。如果将多个类型和多个命名空间放在同一个文件中,则作用域限定的使用语句很有意义,但即使在只有一个命名空间的文件中,我仍然看到有很多这样的情况。为什么呢?
using System;
namespace MyNamespace
{
using System.Text;
public class MyClass {
// ...
}
}
看起来毫无必要地在整个项目中都这样做的一个例子是ASP.NET MVC源代码。