“使用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
指示说你想使用东西在一个特定的命名空间,而命名空间声明是关于把东西到一个特定的命名空间。
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.UI
,System.Web.UI.Page
标识符可以被编写为Page
,因为编译器知道该名称空间中的类。如果您没有该语句,则需要编译器的完全限定名称来知道在哪里找到该类。
非常感谢Jon的解释。我现在明白了。 – Amit 2010-08-09 09:03:14