“使用MyNameSpace”之间的区别和“命名空间MyNameSpace”

问题描述:

你好,我是新来的asp.net。我很困惑“使用MyNameSpace”的区别是什么?和“命名空间MyNameSpace”。我的演示代码如下...“使用MyNameSpace”之间的区别和“命名空间MyNameSpace”

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 

使用了myNameSpace;

命名空间myNameSpace对象

{ 
    public partial class DemoPage : System.Web.UI.Page 
    { 
     My code here 
    } 
} 

在上面的代码是有两者之间的任何差异突出陈述或没有。如果是,那么它是什么?

在此先感谢...

是的,他们提供的补充服务。

使用using指令是这样的:

using MyNamespace; 

告诉编译器看在命名空间MyNamespace解决简单的名称时 - 所以,如果你有一个名为MyNamespace.Foo类型,你可以在你的源指使用Foo当你有这个使用指令时它。

但是,名称空间声明有效地表示“我在此块中声明的任何内容都在给定的名称空间中”。因此,要申报MyNamespace.Foo类型,你会使用:

namespace MyNamespace 
{ 
    public class Foo 
    { 
     ... 
    } 
} 

你看到了吗? using指示说你想使用东西在一个特定的命名空间,而命名空间声明是关于把东西一个特定的命名空间。

+0

非常感谢Jon的解释。我现在明白了。 – Amit 2010-08-09 09:03:14

using用于为该名称空间内的类型名称创建“快捷方式”。只有在您编写的代码位于另一个名称空间内时才需要。 namespace用于限定一个名称空间:


在文件first.cs

// define the namespace "SomeNamespace" 
namespace SomeNamespace 
{ 
    // define a type within the namespace 
    class SomeClass { } 
} 

在文件second.cs

using SomeNamespace; 
// define the namespace "OtherNamespace" 
namespace OtherNamespace 
{ 
    class OtherClass 
    { 
     void SomeMethod() 
     { 
      // use the type "SomeClass", defined in the "SomeNamespace" namespace 
      // note that without the using directive above we would need to write 
      // SomeNamespace.SomeClass for this to work. 
      SomeClass temp = new SomeClass(); 
     } 
    } 
} 

在上面的代码示例中,声明temp变量不需要包含名称空间,因为它是在using指令中提到的。

是的,有区别。 namespace语句用于创建名称空间,而using语句用于使编译器重新识别已存在的名称空间。

在你的代码中,using声明没有效果,因为你的所有代码都在该名字空间中,所以它已经知道它。

正如您有using System.Web.UISystem.Web.UI.Page标识符可以被编写为Page,因为编译器知道该名称空间中的类。如果您没有该语句,则需要编译器的完全限定名称来知道在哪里找到该类。