ASP.NET中的命名空間

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.AgentCallBack類的全名是vlink.Agent.CallBack
  
  注意不允許在另一個嵌套的命名空間中聲明多部分的命名空間。

  命名空間與程序集無關。同一個程序集中可以有不同的命名空間,也可以在不同的程序集中定義同一個命名空間中的類型。

  using語句

  顯然,命名空間相當長,鍵入起來很繁瑣,用這種方式指定某個特定的類也是不必要的。如本章開頭所述,C#允許簡寫類的全名。爲此,要在文件的頂部列出類的命名空間,前面加上using關鍵字。在文件的其他地方,就可以使用其類型名稱來引用命名空間中的類型了:

    using System;

using vlink;


  如前所述,所有的C#源代碼都以語句using System;開頭,這僅是因爲Microsoft提供的許多有用的類都包含在System命名空間中。

  如果using指令引用的兩個命名空間包含同名的類,就必須使用完整的名稱(或者至少較長的名稱),確保編譯器知道訪問哪個類型,例如,類CallBack同時存在於Agentvlink命名空間中,如果要在命名空間Agent中創建一個類Test,並在該類中實例化一個CallBack類,就需要指定使用哪個類。


  因爲using語句在C#文件的開頭,CC++也把#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.Drawing2DSystem.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的類

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章