关于c#:’using’应该在命名空间内还是在外面?

Should 'using' be inside the namespace or outside?

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
Should Usings be inside or outside the namespace

有什么技术上的原因可以选择这个吗

1
2
3
4
namespace Foo
{
     using System;
     using System.IO;

而不是默认值

1
2
3
4
5
using System;
using System.IO;

namespace Foo
{


埃里克·利珀特解释了这一点。

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


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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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
    }
}

*见斯莱克斯的回答。


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