C 命名空間專題

2021-05-27 10:17:29 字數 3350 閱讀 3973

一. namespace-命名空間

在c#中命名空間有很大的作用,它指明了你所用到的類來自哪個命名空間中,例如mail類在命名空間using system.net.mail和using system.web.mail都存在,如果你在程式當中引用了這兩個空間,但是在建立mail類的物件時候沒有指明使用的是哪個空間中的類那麼就會出現錯誤:

using system.net.mail;

using system.web.mail;

public partial class dmanage : system.web.ui.page

protected void page_load(object sender, eventargs e)

mailmessage mm = new mailmessage();

mm.from = "[email protected]";

在編譯當前**的時候出現下面的錯誤:「mailmessage」是「system.net.mail.mailmessage」和「system.web.mail.mailmessage」之間的不明確的引用

namespace demostrator//命名空間的名字

public class demo //命名空間的類

private string name;

public demo()//建構函式

name = "luxiaofeng";

public demo(string name) //建構函式

this.name = name;

public string getname()

return this.name;

public class myname //命名空間的類

private string name;

public myname()//建構函式

name = "bianceng";

public myname(string name) //建構函式

this.name = name;

public string getname()

return this.name;

由於name是私有的,所以在其他類中初始化本類後如果要獲取name就得使用這個函式public string getname()

下面就在初始化乙個物件:

using demostrator;//引用自定義的空間

protected void page_load(object sender, eventargs e)

demostrator.demo mydemo = new demo();//建立物件

demostrator.myname name = new myname();//建立物件

response.write("in demo default name  is " + mydemo.getname());

response.write(" ___________________");

response.write("in myname default name is " + name.getname());

頁面輸出的結果是:

以上結果是在web頁面中顯示的。

二、命名空間巢狀

上一節中講到命名空間在類的物件例項化的過程中可以防止類的衝突,如果兩個類名一樣的類包含在兩個不同的命名空間中,那麼在例項物件的建立的時候系統就會提示你該選擇用哪個類.而所謂命名空間巢狀是指在乙個命名空間巢狀中里還可以包含另乙個命名空間巢狀。下面用乙個簡單的例子來說明:

using system;

using system.collections.generic;

using system.text;

using system.io;

using system.collections.objectmodel;

using system.collections;

using system.reflection;

namespace csharp//最外面的命名空間

classprogram

staticvoidmain(string args)", mike.name);

console.writeline("counter.monkey's name is ", wukong.name);

console.writeline("counter.nestedspace.man's name is ", jakson.name);

//輸出三個物件的名字

console.readkey();

namespace csharp

classman

publicstring name;

public man()

this.name = "name in man";

namespace counter

classmonkey

publicstring name;

public monkey()

this.name = "name in monkey";

}// namespace nestedspace巢狀在namespace counter裡面

namespace nestedspace

classman

publicstring name;

public man()

this.name = "nested name";

輸出的結果:

三、同乙個命名空間兩個類的同名方法

現在將下面的方法加入到兩個man類中,看下它們的物件呼叫這個方法後的結果是

public void changename(string newname)

mike.changename("劉德華"); jakson.changename("mike jachson") 

四.給命名空間起別名

在程式的引用開始:

using newname = csharp.csharp;

別名                原來的名字

下面看乙個簡單的例子,在上面的程式中新增**:

using newname = csharp.csharp;//引用

console.writeline("using newname = csharp.csharp;");

newname.man newman = new newname.man();//同樣建立mana物件

console.writeline("newman 's name is__", newman.name);

newman.changename("郭靖");

console.writeline("newman 's name is__", newman.name);

程式執行的結果:

spring p命名空間 c命名空間

p命名空間 1.需要引入命名空間p 並不真實存在 是在spring內部中實現的 xmlns p 2.如果是引用注入需要加 ref字尾 p和c命名空間 並不適用於集合引數 c命名空間 1.需要引入命名空間c 並不真實存在 是在spring內部中實現的 xmlns c 2.可以使用c 引數名 或c 引數...

C 命名空間 預設命名空間與匿名命名空間

2.匿名命名空間 預設命名空間也叫全域性命名空間,所有沒有置於某一具體命名空間下的 即在預設命名空間下,例如func main 函式。include void func void intmain int argc,char ar void func void 需要注意的是 這個就是類似於c語言裡簡單...

C 命名空間,也有叫命名空間

在c 中,名稱 name 可以是符號常量 變數 巨集 函式 結構 列舉 類和物件等等。為了避免在大規模程式設計中,以及在程式設計師使用各種各樣的c 庫時,這些識別符號的命名發生衝突,標準c 引入了關鍵字namespace 命名空間 名字空間 命名空間 名域 可以更好地控制識別符號的作用域。std是c...