您好我是asp.net的新手。我很困惑“使用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
}
}
在上面的代码中,两个突出显示的语句之间是否存在任何差异。如果是,那么它是什么?
提前致谢...
答案 0 :(得分:5)
是的,他们提供补充服务。
这样的using指令:
using MyNamespace;
告诉编译器在解析简单名称时查看名称空间MyNamespace
- 所以如果你有一个名为MyNamespace.Foo
的类型,你可以在源代码中使用Foo
来引用它当你有这个使用指令。
但是,命名空间声明有效地说,“我在此块中声明的任何内容都在给定的命名空间中”。因此,要声明 MyNamespace.Foo
类型,您需要使用:
namespace MyNamespace
{
public class Foo
{
...
}
}
你知道吗? using
指令表示您希望在特定名称空间中使用内容,而名称空间声明则是将放入特定名称空间。
答案 1 :(得分:0)
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
指令中提到。
答案 2 :(得分:0)
是的,有区别。 namespace
语句用于创建命名空间,而using
语句用于使编译器重新识别已存在的命名空间。
在您的代码中,using
语句无效,因为您的所有代码都在该命名空间中,因此它已经知道它。
正如using System.Web.UI
那样,System.Web.UI.Page
标识符可以写成Page
,因为编译器知道该命名空间中的类。如果您没有using
语句,则需要编译器的完全限定名称才能知道在哪里找到该类。