1. 程式人生 > >.Net名稱空間使用介紹

.Net名稱空間使用介紹

複製地址:http://blog.csdn.net/chelen_jak/article/details/7703144

.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
}

  把一個型別放在名稱空間中,可以有效地給這個型別指定一個較長的名稱,該名稱包括型別的名稱空間,後面是句點

(.)和類的名稱。在上面的例子中,Agent全名是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
  
  注意不允許在另一個巢狀的名稱空間中宣告多部分的名稱空間。

  名稱空間與程式集(Assembly)無關。同一個程式集中可以有不同的名稱空間,也可以在不同的程式集中定義同一個名稱空間中的型別。

  
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的類