2012-08-04 53 views
5

可能重复:
Should Usings be inside or outside the namespace“命名空间”内部或外部的“使用”(导入)之间的区别?

我已经看到了使用装配的两种方法。使用其中一个的区别和好处是什么

namespace Assembly 
{ 
    using System.Data; 
    class Foo{ 
    ... 
    } 
} 

using System.Data; 
namespace Assembly 
{ 
    class Foo{ 
    ... 
    } 
} 
+0

也是在这[维基问题(http://stackoverflow.com/questions/2026466/c-sharp-使用名称空间的指令 - 在嵌套的命名空间),你会发现一个非常好的“发生了什么后面的代码”你的问题 – Steve 2012-08-04 21:34:10

+0

参见http://blogs.msdn.com/b/ericlippert/archive/2007/06 /25/inside-or-outside.aspx – 2012-08-04 21:39:36

回答

0

实际上它们之间有一个自带的差异。

考虑下面的例子:在这个

//File1.cs 
using System; 
namespace Outer.Inner 
{ 
    class Foo 
    { 
     static void Bar() 
     { 
       double d = Math.PI; 
     } 
    } 
} 

// File2.cs 
namespace Outer 
{ 
    class Math 
    { 
    } 
} 

编译器会得到一个错误,因为它会发现在Outer命名空间Math类,看着面前的System命名空间。而Math命名空间里面没有任何PI

在情况下,如果你的,相反,把using System类的声明,它将被编译器第一采摘,所以没有错误会产生。

这样做的好处是显而易见的:在情况下,如果你得到一些代码,如果有人在写你的相同命名空间中写道Math类,你有机会要解决这个问题。

对于更详细的解释一下这个链接(从我gracefuly复制过的代码)Should Usings be inside or outside the namespace

0

我不相信这两种格式都有好处。这简直归结为团队编码标准和可读性。

相关问题