谁能解释一下命名空间到底是什么玩意?

5200 2003-08-30 01:47:50
我知道什么是类,就是对命名空间还是搞不太清楚,教程上又说得一塌糊涂,谁能用通俗易懂的语言说一说它和类有什么区别哦,是不是必须要用不用不行吗?
...全文
64 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
雪狼1234567 2003-08-30
  • 打赏
  • 举报
回复
1.12 名字空间(Namespaces)

我们在前面已对namespace花了不少笔墨(俺都忘了该如何接上了!O.K.请大家看完再倒)。我们曾经说“i not
like the hello world”。但是在程序中要经常说就会很累,如果要在别的代码中用就更繁了,这时可以用
namespace搭救。我把第一个例子切开,代码如下:*/

namespace MyOpinion
{
public class Message
{
public string GetMessage() {
return "i dont like Hello world";
}
}
}

/*
如果我想用namespace建立一个自己的库,就要对我的自定义函数和类进行分类,并填入相应的namespace中。
如:*/

namespace Mylib.Csharp.MyOpinion
{
public class Message
{
public string GetMessage() {
return "i dont like Hello world";
}
}
}

/*
namespace是分等级的,“Mylib.Csharp.MyOpinion”其实是缩写,每个“.”后面的namespace都被它前面的包
含。如果拆开:*/

namespace Mylib
{
namespace Csharp
{
namespace MyOpinion
{....}
}
}

/*
然后,我们就可以用自己的库了:*/

using Mylib.Csharp.MyOpinion;
class test
{
static void Main() {
Message m = new Message();
System.Console.WriteLine(m.GetMessage());
}
}

/*
不过无论我们命名如何小心都会出现重名,即命名冲突。这时可以用别名来解决,比如上面的代码可以这样:*/

using MessageSource = Mylib.Csharp.MyOpinion;
class test
{
static void Main() {
MessageSource m = new MessageSource();
System.Console.WriteLine(m.GetMessage());
}
rouser 2003-08-30
  • 打赏
  • 举报
回复
簡單地說就象我們的名字一樣
你祖上姓“王”你就必需是“王”這個名字空間下的
當然你可以有自己的子名字空間“小二”
那麼別人認你的時候就會以完整的名字空間“王小二”來認識你了
在.Net中,以"."來連接父名字空間和子名字空間,當然,子名字空間下面還可以有子
名字空間
namhyuk 2003-08-30
  • 打赏
  • 举报
回复
就是类名的扩展呗,还有什么?
panyee 2003-08-30
  • 打赏
  • 举报
回复
命名命名空间时的一般性规则是使用公司名称,后跟技术名称和可选的功能与设计,如下所示。

CompanyName.TechnologyName[.Feature][.Design]
例如:

Microsoft.Media
Microsoft.Media.Design
给命名空间名称加上公司名称或者其他知名商标的前缀可以避免两个已经发布的命名空间名称相同的可能性。例如,Microsoft.Office 是由 Microsoft 提供的 Office Automation Classes 的一个适当的前缀。

在第二级分层名称上使用稳定的、公认的技术名称。将组织层次架构用作命名空间层次架构的基础。命名一个命名空间,该命名空间包含为具有 .Design 后缀的基命名空间提供设计时功能的类型。例如,System.Windows.Forms.Design 命名空间包含用于设计基于 System.Windows.Forms 的应用程序的设计器和相关的类。

嵌套的命名空间应当在包含它的命名空间中的类型上有依赖项。例如,System.Web.UI.Design 中的类依赖于 System.Web.UI 中的类。但是,System.Web.UI 中的类不依赖于 System.UI.Design 中的类。

应当对命名空间使用 Pascal 大小写,并用句点分隔逻辑组件,如 Microsoft.Office.PowerPoint 中所示。如果您的商标使用非传统的大小写,请遵循您的商标所定义的大小写,即使它与规定的 Pascal 大小写相背离。例如,命名空间 NeXT.WebObjects 和 ee.cummings 阐释了对于 Pascal 大小写规则的适当背离。

如果在语义上适当,使用复数命名空间名称。例如,使用 System.Collections 而不是 System.Collection。此规则的例外是商标名称和缩写。例如,使用 System.IO 而不是 System.IOs。

不要为命名空间和类使用相同的名称。例如,不要既提供 Debug 命名空间也提供 Debug 类。

rouser 2003-08-30
  • 打赏
  • 举报
回复
http://www.yesky.com/20011103/203294_6.shtml
速马 2003-08-30
  • 打赏
  • 举报
回复
用来解决程序命名混乱的问题
和类,对象无关

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧