在ASP.NET中,.NET Framework為我們提供了豐富的基類,為了能在程式中引用這些基類,我們必須先引用這些基類的命名空間。我們都知道,如果我們想在C++中引用一個檔案函數時,我必須先調用該檔案,例如<#include studio.h>,其實它和ASP.NET中命名空間的引用是同一原理。但是它們又有本質上的差別。
在ASP.NET中,命名空間提供了一種組織相關類和其他類型的方式。與檔案或元件不同,命名空間是一種邏輯組合,而不是實體組合。在C#檔案中定義類時,可以把它包括在命名空間定義中。以後,在定義另一個類,在另一個檔案中執行相關操作時,就可以在同一個命名空間中包含它,建立一個邏輯組合,告訴使用類的開發人員這兩個類是如何相關的以及如何使用它們:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
namespace vlink
{
public class Agent
{
把一個類型放在命名空間中,可以有效地給這個類型指定一個較長的名稱,該名稱包括類型的命名空間,後面是句點(.)和類的名稱。在上面的例子中,Agen全名是vlink.Agent。這樣,有相同短名的不同的類就可以在同一個程式中使用了。
也可以在命名空間中嵌套其他命名空間,為類型建立層次結構:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
namespace vlink
{
namespace Agent
{
namespace CallBack
{
}
}
}
每個命名空間名都由它所在命名空間的名稱組成,這些名稱用句點分隔開,首先是最外層的命名空間,最後是它自己的短名。是以Agent命名空間的全名是vlink.Agent,CallBack類的全名是vlink.Agent.CallBack。
注意不允許在另一個嵌套的命名空間中聲明多部分的命名空間。
命名空間與程式集無關。同一個程式集中可以有不同的命名空間,也可以在不同的程式集中定義同一個命名空間中的類型。
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;
ASP.NET中各命名空間及作用
命名空間 描述
Microsoft.CSharp 支援C#語言編譯和生成代碼
System 包含了基礎類,用于定義類型/數組/字元串/事件/事件處理程式/
異常 處理 /接口/資料類型轉換/數學計算/應用程式環境管理等等.
System.Coolections 包含了一組用于管理對象集合(例如清單/隊列/數組/哈希表/字典等)的類
System.Data 主要包括了組成ADO.NET體系結構的類
System.diagnostics 提供用于調試/跟蹤,以及與系統程序/事件日志/性能計數器進行互動的類
System.Drawing 提供通路GDI+基本圖形功能(在System.Drawing以下的命名空間,包括
System.Drawing.Drawing2D和System.Drawing.Text等,提供了更進階和更特
殊的GDI+圖形功能)的類
System.IO 包含了用于讀寫資料流/檔案和普通輸入/輸出(I/O)功能的類型和類
System.Reflection 包括提供類型檢測和動态綁定對象功能的類和接口
System.reflection.Emit 生成動态程式集
System.Text 包含用于字元編碼/将字元塊轉換為位元組快/将位元組塊轉換為字元塊等功能的
對象
System.Text.RegularExpressions 包含了提供通路.NET架構正則表達引擎的類
System.Timer 提供了Timer元件
System.Web 包含了用于實施浏覽器/伺服器通信和其他Web相關功能的類
System.Web.Services 包含了用于建立和消費Web服務的類
System.Web.UI 包含了用于建立Web頁和控件的使用者接口的類和接口
System.Windows.Forms 包含了用于建立基于WINDOWS的使用者接口的類
System.XML 提供了支援處理XML的類
轉載于:https://www.cnblogs.com/godwar/archive/2007/08/19/861952.html