在ASPNET中NET Framework為我們提供了豐富的基類為了能在程序中引用這些基類我們必須先引用這些基類的命名空間我們都知道如果我們想在C++中引用一個文件函數時我必須先調用該文件例如<#include studioh>其實它和ASPNET中命名空間的引用是同一原理但是它們又有本質上的區別
在ASPNET中命名空間提供了一種組織相關類和其他類型的方式與文件或組件不同命名空間是一種邏輯組合而不是物理組合在C#文件中定義類時可以把它包括在命名空間定義中以後在定義另一個類在另一個文件中執行相關操作時就可以在同一個命名空間中包含它創建一個邏輯組合告訴使用類的開發人員這兩個類是如何相關的以及如何使用它們:
using System;
using SystemData;
using SystemConfiguration;
using SystemWeb;
using SystemWebSecurity;
namespace vlink
{
public class Agent
{
把一個類型放在命名空間中可以有效地給這個類型指定一個較長的名稱該名稱包括類型的命名空間後面是句點()和類的名稱在上面的例子中Agen全名是vlinkAgent這樣有相同短名的不同的類就可以在同一個程序中使用了
也可以在命名空間中嵌套其他命名空間為類型創建層次結構:
using System;
using SystemData;
using SystemConfiguration;
using SystemWeb;
using SystemWebSecurity;
namespace vlink
{
namespace Agent
{
namespace CallBack
{
}
}
}
每個命名空間名都由它所在命名空間的名稱組成這些名稱用句點分隔開首先是最外層的命名空間最後是它自己的短名所以Agent命名空間的全名是vlinkAgentCallBack類的全名是vlinkAgentCallBack
注意不允許在另一個嵌套的命名空間中聲明多部分的命名空間
命名空間與程序集無關同一個程序集中可以有不同的命名空間也可以在不同的程序集中定義同一個命名空間中的類型
using語句
顯然命名空間相當長鍵入起來很繁瑣用這種方式指定某個特定的類也是不必要的如本章開頭所述C#允許簡寫類的全名為此要在文件的頂部列出類的命名空間前面加上using關鍵字在文件的其他地方就可以使用其類型名稱來引用命名空間中的類型了:
using System;
using vlink;
如前所述所有的C#源代碼都以語句using System;開頭這僅是因為Microsoft提供的許多有用的類都包含在System命名空間中
如果using指令引用的兩個命名空間包含同名的類就必須使用完整的名稱(或者至少較長的名稱)確保編譯器知道訪問哪個類型例如類CallBack同時存在於Agent和vlink命名空間中如果要在命名空間Agent中創建一個類Test並在該類中實例化一個CallBack類就需要指定使用哪個類
因為using語句在C#文件的開頭C和C++也把#include放在這裡所以從C++遷移到C#的程序員常把命名空間與C++風格的頭文件相混淆不要犯這種錯誤using語句在這些文件之間並沒有真正建立物理鏈接C#也沒有對應於C++頭文件的部分
命名空間的別名
using關鍵字的另一個用途是給類和命名空間指定別名如果命名空間的名稱非常長又要在代碼中使用多次但不希望該命名空間的名稱包含在using指令中(例如避免類名沖突)就可以給該命名空間指定一個別名其語法如下:
using alias = NamespaceName;
ASPNET中各命名空間及作用
命名空間 描述
MicrosoftCSharp 支持C#語言編譯和生成代碼
System 包含了基礎類用於定義類型/數組/字符串/事件/事件處理程序/
異常 處理 /接口/數據類型轉換/數學計算/應用程序環境管理等等.
SystemCoolections 包含了一組用於管理對象集合(例如列表/隊列/數組/哈希表/字典等)的類
SystemData 主要包括了組成ADONET體系結構的類
Systemdiagnostics 提供用於調試/跟蹤以及與系統進程/事件日志/性能計數器進行交互的類
SystemDrawing 提供訪問GDI+基本圖形功能(在SystemDrawing以下的命名空間包括
SystemDrawingDrawingD和SystemDrawingText等提供了更高級和更特
殊的GDI+圖形功能)的類
SystemIO 包含了用於讀寫數據流/文件和普通輸入/輸出(I/O)功能的類型和類
SystemReflection 包括提供類型檢測和動態綁定對象功能的類和接口
SystemreflectionEmit 生成動態程序集
SystemText 包含用於字符編碼/將字符塊轉換為字節快/將字節塊轉換為字符塊等功能的
對象
SystemTextRegularExpressions包含了提供訪問.NET框架正則表達引擎的類
SystemTimer 提供了Timer組件
SystemWeb 包含了用於實施浏覽器/服務器通信和其他Web相關功能的類
SystemWebServices 包含了用於創建和消費Web服務的類
SystemWebUI 包含了用於創建Web頁和控件的用戶接口的類和接口
SystemWindowsForms 包含了用於創建基於WINDOWS的用戶接口的類
System
XML 提供了支持處理XML的類
From:http://tw.wingwit.com/Article/program/net/201311/13493.html