命名空間這個概念是程式設計識別符號(progid)值的邏輯擴充套件。
命名空間是一種組織.net framework類庫提供的大量類、結構、列舉、委託和介面的方式。命名空間作為類庫層次化的索引結構,可用於所有的.net語言。命名空間,或者說物件引用,一般按功能進行組織。例如,命名空間system.io含有處理輸入、輸出流和檔案的類、結構、介面等。同乙個命名空間中的類不必從同乙個基類(object除外)中繼承。
命名空間是命名約定和程式集的結合,它將物件組織起來,防止在物件引用**現混亂。乙個命名空間經常是在幾個物理程式集中實現的,但是從引用的角度來講,是命名空間將這些程式集聯絡在—起的。命名空間不僅包含類,還可以包含其他(子)命名空間,例如,io命名空間是system的子命名空間。
命名空間可以提供除元件名之外的標識。使用命名空間意義明確的標題(例如system)加上組名(例如text),可以更好地將含有相似功能的類組織在一起。例如,命名空間system.text含有stringbuilder這個功能強大的類。
命名空間的結構並不能反映構成命名空間的類之間的物理繼承關係。例如,命名空間system.text含有另乙個子命名空間regularexpression。這個命名空間含有若干個類,但是這些類並不繼承或引用命名空間system.text中的類。
新增引用microsoft.visualbasic.compatibility和microsoft.visualbasic.compatibility.data後,可以在物件瀏覽器中看到microsoft.visualbasic.compatibility.vb6命名空間。。這個命名空間包含了多年來visual basic 6開發人員所使用的全部功能。microsoft在.net framework中實現了這些功能,允許開發人員在.net專案中直接使用。由於這些功能是在.net framework中實現的,因此不再存在以前效率低下的問題。只要在.net命名空間中找到它們就可以使用了。另外要注意的是,儘管這個命名空間的名字是microsoftvisualbasic,實際上所有的.net語言都可以使用它。也就是說,c#開發人員可以在程式中呼叫此命名空間。
在解決方案視窗在選擇顯示所有檔案,可以看到專案的一組引用的命名空間。對於自定義的引用,要把它的「複製本地」屬性改為「true」。
利用物件瀏覽器可以檢視命名空間中的類的方法和特性及功能。
可以使用imports 引用命名空間。編譯器處理imports 宣告的過程歸納如下:
別名在.net中有兩個好處。首先,別名允許長命名空間(例如system.enterpriseservices)被短名(如complus)代替。另外,別名是解決模組級別上子命名空間指代不清楚的一種新方法。
命名空間system和systandrawing都含有子命名空間text。由於要使用命名空間sysel.drawing的許多類,所以,這個命名空間應該從該窗體的模組中匯入。可是,假如這個命名空間與命名空間system一起匯入,編譯器就會再次發現對子命名空間text的引用是不清楚的。如果給命名空間system.drawing指定—個別名sysdraw,編譯器就會知道,在以該別名開始的宣告中,只應檢查命名空間syse.drawing。這樣就可以在模組級別上使用帶有相同子命名空間的多個命名空間口編譯器在顯式引用它們時,只需要在模組級別上定位它們中的—個(或多個)。
別名的使用方法如下所示:
imports sysdraw = system.drawing
在asp.net專案中引用命名空間與在windows窗體專案中引用命名空間類似。但必須先完成一些簡單的額外步驟。首先,開啟aspnet解決方案的references資料夾,新增對程式集的引用,這與windows窗體專案相同。然後,在頁面檔案的頂端匯入這些命名空間,以避免每次在頁面上完全限定這些引用。
例如,不是將system.couections.generic命名空間用於每個例項,而是可以在aspnet頁面的頂端新增頁面指令(假定頁面用內聯編碼模式來構建),或者在aspnet頁面的後台**檔案中使用imports關鍵字(與windows窗體程式相同)。在aspnet頁面中使用內聯編碼模式執行此任務的**如下:
新增引用後,使用該命名空間中的任何內容都不再需要完全限定要訪問的物件。注意,這個內聯編碼示例使用的是import,不是imports。在asp.net後台編碼模型和windows窗體中應使用imports。
在asp.net1.0/1.1中,如果要在程式的每個頁面中使用同乙個命名空間,必須在各個頁面中分別使用import語句。 aspnet 3.5引入的web.config檔案允許新增全域性引用,來避免一一引用,如下所示:
根據是在頂級還是子級上建立類,選擇在**中新增命令namespace。在構成程式集的模組中建立頂級命名空間或者建立多個命名空間時,有乙個技巧一可以刪除預設的命名空間,然後使用命令namespace在模組中定義新的命名空間,而不是重新命名預設的命名空間。
使用namespace命令時,還要使用end namespace命令。end namespace必須放在命名空間中所有類的end class標記後面,下面的**演示了如何建立命名空間mymetanamespace,該命名空間包含乙個類:
namespace mymetanamespace
class myclass1
'code
end class
end namespace
乙個檔案中可以有多個命名空間,還可以巢狀使用。
使用自定義命名空間時,有時會因為命名衝突而難以使用其他的命名空間a為了解決這個問題,visual basic引入了global關鍵字,作為.net framework類庫最外層的根類。
C 命名空間 預設命名空間與匿名命名空間
2.匿名命名空間 預設命名空間也叫全域性命名空間,所有沒有置於某一具體命名空間下的 即在預設命名空間下,例如func main 函式。include void func void intmain int argc,char ar void func void 需要注意的是 這個就是類似於c語言裡簡單...
spring p命名空間 c命名空間
p命名空間 1.需要引入命名空間p 並不真實存在 是在spring內部中實現的 xmlns p 2.如果是引用注入需要加 ref字尾 p和c命名空間 並不適用於集合引數 c命名空間 1.需要引入命名空間c 並不真實存在 是在spring內部中實現的 xmlns c 2.可以使用c 引數名 或c 引數...
C 命名空間,也有叫命名空間
在c 中,名稱 name 可以是符號常量 變數 巨集 函式 結構 列舉 類和物件等等。為了避免在大規模程式設計中,以及在程式設計師使用各種各樣的c 庫時,這些識別符號的命名發生衝突,標準c 引入了關鍵字namespace 命名空間 名字空間 命名空間 名域 可以更好地控制識別符號的作用域。std是c...