- 工信部備案號 滇ICP備05000110號-1
- 滇公安備案 滇53010302000111
- 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證 B1.B2-20181647、滇B1.B2-20190004
- 云南互聯(lián)網(wǎng)協(xié)會(huì )理事單位
- 安全聯(lián)盟認證網(wǎng)站身份V標記
- 域名注冊服務(wù)機構許可:滇D3-20230001
- 代理域名注冊服務(wù)機構:新網(wǎng)數碼
ASP.NET中的命名空間的簡(jiǎn)單介紹
在A(yíng)SP.NET中,.NET Framework為我們提供了豐富的基類(lèi),為了能在程序中引用這些基類(lèi),我們必須先引用這些基類(lèi)的命名空間。類(lèi)似在C++中引用一個(gè)文件函數時(shí),我必須先調用該文件,例如<#include studio.h>,其實(shí)它和ASP.NET中命名空間的引用是同一原理。但是它們又有本質(zhì)上的區別。
在A(yíng)SP.NET中,命名空間提供了一種組織相關(guān)類(lèi)和其他類(lèi)型的方式。與文件或組件不同,命名空間是一種邏輯組合,而不是物理組合。在C#文件中定義類(lèi)時(shí),可以把它包括在命名空間定義中。以后,在定義另一個(gè)類(lèi),在另一個(gè)文件中執行相關(guān)操作時(shí),就可以在同一個(gè)命名空間中包含它,創(chuàng )建一個(gè)邏輯組合,告?使用類(lèi)的開(kāi)發(fā)人員這兩個(gè)類(lèi)是如何相關(guān)的以及如何使用它們:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
namespace vlink
{
public class Agent
{
把一個(gè)類(lèi)型放在命名空間中,可以有效地給這個(gè)類(lèi)型指定一個(gè)較長(cháng)的名稱(chēng),該名稱(chēng)包括類(lèi)型的命名空間,后面是句點(diǎn)(.)和類(lèi)的名稱(chēng)。在上面的例子中,Agen全名是vlink.Agent。這樣,有相同短名的不同的類(lèi)就可以在同一個(gè)程序中使用了。
也可以在命名空間中嵌套其他命名空間,為類(lèi)型創(chuàng )建層次結構:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
namespace vlink
{
namespace Agent
{
namespace CallBack
{
}
}
}
每個(gè)命名空間名都由它所在命名空間的名稱(chēng)組成,這些名稱(chēng)用句點(diǎn)分隔開(kāi),首先是最外層的命名空間,最后是它自己的短名。所以Agent命名空間的全名是vlink.Agent,CallBack類(lèi)的全名是vlink.Agent.CallBack。
注意不允許在另一個(gè)嵌套的命名空間中聲明多部分的命名空間。
命名空間與程序集無(wú)關(guān)。同一個(gè)程序集中可以有不同的命名空間,也可以在不同的程序集中定義同一個(gè)命名空間中的類(lèi)型。
using語(yǔ)句
顯然,命名空間相當長(cháng),鍵入起來(lái)很繁瑣,用這種方式指定某個(gè)特定的類(lèi)也是不必要的。如本章開(kāi)頭所述,C#允許簡(jiǎn)寫(xiě)類(lèi)的全名。為此,要在文?的頂部列出類(lèi)的命名空間,前面加上using關(guān)鍵字。在文件的其他地方,就可以使用其類(lèi)型名稱(chēng)來(lái)引用命名空間中的類(lèi)型了:
using System;
using vlink;
如前所述,所有的C#源代碼都以語(yǔ)句using System;開(kāi)頭,這僅是因為Microsoft提供的許多有用的類(lèi)都包含在System命名空間中。
如果using指令引用的兩個(gè)命名空間包含同名的類(lèi),就必須使用完整的名稱(chēng)(或者至少較長(cháng)的名稱(chēng)),確保編譯器知道訪(fǎng)問(wèn)哪個(gè)類(lèi)型,例如,類(lèi) CallBack同時(shí)存在于A(yíng)gent和vlink命名空間中,如果要在命名空間Agent?創(chuàng )建一個(gè)類(lèi)Test,并在該類(lèi)中實(shí)例化一個(gè)CallBack 類(lèi),就需要指定使用哪個(gè)類(lèi)。
因為using語(yǔ)句在C#文件的開(kāi)頭,C和C++也把#include放在這里,所以從C++遷移到C#的程序員常把命名空間與C++風(fēng)格的頭文件相混淆。不要犯這種錯誤,using語(yǔ)句在這些文件之間并沒(méi)有真正建立物理鏈接。C#也沒(méi)有對應于C++頭文件的部分。
命名空間的別名
using關(guān)鍵字的另一個(gè)用途是給類(lèi)和命名空間指定別名。如果命名空間的名稱(chēng)非常長(cháng),又要在代碼中使用多次,但不希望該命名空間的名稱(chēng)包含在using指令中(例如,避免類(lèi)名沖突),就可以給該命名空間指定一個(gè)別名,其語(yǔ)法如下:
using alias = NamespaceName;
ASP.NET中各命名空間及作用
命名空間 描述
Microsoft.CSharp 支持C#語(yǔ)言編譯和生成代碼
System 包含了基礎類(lèi),用于定義類(lèi)型/數組/字符串/事件/事件處理程序/異常處理/接口/數據類(lèi)型轉換/數學(xué)計算/應用程序環(huán)境管理等等
System.Coolections 包含了一組用于管理對象集合(例如列表/隊列/數組/哈希表/字典等)的類(lèi)
System.Data 主要包括了組成ADO.NET體系結構的類(lèi)
System.diagnostics 提供用于調試/跟蹤,以及與系統進(jìn)程/事件日志/性能計數器進(jìn)行交互的類(lèi)
System.Drawing 提供訪(fǎng)問(wèn)GDI+基本圖形功能(在System.Drawing以下的命名空間,包括System.Drawing.Drawing2D和 System.Drawing.Text等,提供了更高級和更特殊的GDI+圖形功能)的類(lèi)System.IO包含了用于讀寫(xiě)數據流/文件和普通輸入/輸出(I/O)功能的類(lèi)型和類(lèi)
System.Reflection 包括提供類(lèi)型檢測和動(dòng)態(tài)綁定對象功能的類(lèi)和接口
System.reflection.Emit 生成動(dòng)態(tài)程序集
System.Text 包含用于字符編碼/將字符塊轉換為字節快/將字節塊轉換為字符塊等功能的對象
System.Text.RegularExpressions 包含了提供訪(fǎng)問(wèn).NET框架正則表達引擎的類(lèi)
System.Timer 提供了Timer組件
System.Web 包含了用于實(shí)施瀏覽器/服務(wù)器通信和其他Web相關(guān)功能的類(lèi)
System.Web.Services 包含了用于創(chuàng )建和消費Web服務(wù)的類(lèi)
System.Web.UI 包含了用于創(chuàng )建Web頁(yè)和控件的用戶(hù)接口的類(lèi)和接口
System.Windows.Forms 包含了用于創(chuàng )建基于WINDOWS的用戶(hù)接口的類(lèi)
System.XML 提供了支持處理XML的類(lèi)
售前咨詢(xún)
售后咨詢(xún)
備案咨詢(xún)
二維碼
TOP