“使用”应该在命名空间内还是在外面?

时间:2011-09-02 20:21:23

标签: c# .net coding-style

  

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

是否有任何技术原因可以选择

namespace Foo
{
     using System;
     using System.IO;

而不是默认

using System;
using System.IO;

namespace Foo
{

3 个答案:

答案 0 :(得分:7)

Eric Lippert explains this

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

答案 1 :(得分: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的回答。

答案 2 :(得分:0)

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