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());
}
}