4.3 命名空間和程序集
阿新 • • 發佈:2017-06-17
image dll com alt 指示 str 名稱 bject http
- 命名空間對相關的類型進行邏輯分組。
- C# using 指令指示編譯器嘗試為類型名稱附加不同的前綴,直至找到匹配項。
- CLR 對命名空間一無所知。訪問類型時,CLR需要知道類型的完整名稱以及類型定義在哪個具體的程序集中。
- 編譯器掃描引用的所有程序集,查找類型定義。如果找到,程序集信息和類型信息就嵌入生成的托管模塊元數據中。
- MSCorLib.dll 程序集包含了所有核心 Framework 類庫(FCL)的定義。(如 Object, Int32, String 等)
- 潛在問題:多個類型在不同命名空間重名。需要開發人員確保唯一性。
- C# using指令允許為類型或命名空間創建別名。
- C# 編譯器提供外部別名(extern alias)功能。
-
CLR 編譯器在類型定義元數據表中添加的實際類型名稱。
-
命名空間和程序集不一定相關:同一命名空間的類型可能在不同程序集中;同一程序集也可能包含不同命名空間。
-
在MSDN中可以看到程序集以及命名空間
-
- using 指令的範圍限制為包含它的文件。
- 創建 using 別名,以便更易於將標識符限定到命名空間或類型。 using 別名指令的右側必須始終是一個完全限定類型,而與前面的 using 指令無關。
- 創建 using 指令,以便在命名空間中使用類型而不必指定命名空間。 using 指令不為您提供對嵌套在指定命名空間中的任何命名空間的訪問。
using System.Text 並不能訪問到System命名空間下的方法。
4.3 命名空間和程序集