“使用”应该在命名空间内部还是外部? [复制]

Posted

技术标签:

【中文标题】“使用”应该在命名空间内部还是外部? [复制]【英文标题】:Should 'using' be inside the namespace or outside? [duplicate] 【发布时间】:2011-11-09 11:17:46 【问题描述】:

可能重复:Should Usings be inside or outside the namespace

是否有任何技术原因偏爱这个

namespace Foo

     using System;
     using System.IO;

而不是默认的

using System;
using System.IO;

namespace Foo

【问题讨论】:

见***.com/questions/125319/… 它可以双向工作,但通常人们更喜欢在命名空间之外使用它,但你可以看看这个Using inside Namespace or Outside 【参考方案1】:

埃里克·利珀特explains this.

一般来说,它们是相同的。 但是,命名空间中的using 语句可以看到命名空间之外包含的命名空间和别名。

【讨论】:

【参考方案2】:

几乎* 两者之间的唯一区别是如果您在同一个文件中使用了多个命名空间(或者如果您多次使用相同的命名空间)。我不知道你为什么要这样做,但你当然可以:

using System;

namespace FooNamespace

    using System.IO;

    class Foo
    
        // you can use types from System and System.IO directly here
    


namespace BarNamespace

    class Bar
    
        // you can't use types from System.IO directly here
        // but you can use types from System
    

* 参见 SLaks 的回答。

【讨论】:

这对于扩展方法很有用。 blog.slaks.net/2011/07/creating-local-extension-methods.html【参考方案3】:

没有技术原因,只是偏好。当然,第二段代码看起来更干净。

【讨论】:

以上是关于“使用”应该在命名空间内部还是外部? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

'using'指令应该在命名空间的内部还是外部?

程序集...内部和外部命名空间

命名空间内的局部函数声明

如何从嵌套命名空间中引用外部 C++ 命名空间?

TypeScript:如何在命名空间中使用内部接口

PHP代码文件命名规范