1 回答

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超8個(gè)贊
namespace可以理解為邏輯上的函數(shù)庫(kù)(里面包含各類(lèi)函數(shù)),與之對(duì)應(yīng)的是assembly,屬于物理上的函數(shù)庫(kù)(即一個(gè)個(gè)DLL文件)。
namespace是有層次的,這就好象書(shū)的章節(jié)一樣,這樣在使用namespace中的類(lèi)和對(duì)象時(shí),就比較容易了。象下面這個(gè)例子:dim abc As System.IO.StreamReader,一看就知道這是把a(bǔ)bc定義為system命名空間下的IO子空間中的StreamReader類(lèi)。
由于各名字空間實(shí)際是保存在各程序集(assembly)中的,因此使用名字空間前需要先引用其所在的程序集。
根據(jù)需要也可寫(xiě) import namespace,這樣以后使用namesapce中的類(lèi)和對(duì)象時(shí)可省略那一長(zhǎng)串路徑。比如剛才的例子可以寫(xiě)成這樣:
import System.IO
dim abc as StreamReader
有了namespace后,同名的類(lèi)和函數(shù)就被允許了,因?yàn)樗鼈兾挥诓煌膎amespace中,不會(huì)產(chǎn)生沖突!比如System.Web.UI空間下有TextBox類(lèi),而System.Windows.Forms空間下也有一個(gè)TextBox類(lèi),這兩個(gè)類(lèi)的名字完全一致(其實(shí)功用也差不多),但你在使用它們的時(shí)候,系統(tǒng)能夠很好的分辨到底是哪一個(gè),這就是namespace的關(guān)系!
當(dāng)然,除了系統(tǒng)的namespace,開(kāi)發(fā)者可以自己定義自己的namespace。其實(shí)當(dāng)你編譯一個(gè)解決方案時(shí),系統(tǒng)也會(huì)用你的項(xiàng)目名稱(chēng)做名字,生成一個(gè)namespace,并把你的類(lèi)(其實(shí)每個(gè)web頁(yè)面就是一個(gè)類(lèi))都放在這個(gè)namespace下面!
- 1 回答
- 0 關(guān)注
- 519 瀏覽
添加回答
舉報(bào)