向書(shū)本學(xué)習(xí),還要向?qū)嵺`學(xué)習(xí)、向生活學(xué)習(xí)。消化已有知識(shí),
而且要力求有所發(fā)現(xiàn)、有所發(fā)明、有所創(chuàng)造
2019/3/28 11:28:24
在ASP.NET中,.NET Framework為我們提供了豐富的基類(lèi),為了能在程序中引用這些基類(lèi),我們必須先引用這些基類(lèi)的命名空間。類(lèi)似在C++中引用一個(gè)文件函數(shù)時(shí),我必須先調(diào)用該文件,例如<#include studio.h>,其實(shí)它和ASP.NET中命名空間的引用是同一原理。但是它們又有本質(zhì)上的區(qū)別。
在ASP.NET中,命名空間提供了一種組織相關(guān)類(lèi)和其他類(lèi)型的方式。與文件或組件不同,命名空間是一種邏輯組合,而不是物理組合。在C#文件中定義類(lèi)時(shí),可以把它包括在命名空間定義中。以后,在定義另一個(gè)類(lèi),在另一個(gè)文件中執(zhí)行相關(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è)較長(zhǎng)的名稱(chēng),該名稱(chēng)包括類(lèi)型的命名空間,后面是句點(diǎn)(.)和類(lèi)的名稱(chēng)。在上面的例子中,Agen全名是vlink.Agent。這樣,有相同短名的不同的類(lèi)就可以在同一個(gè)程序中使用了。
也可以在命名空間中嵌套其他命名空間,為類(lèi)型創(chuàng)建層次結(jié)構(gòu):
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ǔ)句
顯然,命名空間相當(dāng)長(zhǎ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)頭,這僅是因?yàn)镸icrosoft提供的許多有用的類(lèi)都包含在System命名空間中。
如果using指令引用的兩個(gè)命名空間包含同名的類(lèi),就必須使用完整的名稱(chēng)(或者至少較長(zhǎng)的名稱(chēng)),確保編譯器知道訪問(wèn)哪個(gè)類(lèi)型,例如,類(lèi)CallBack同時(shí)存在于Agent和vlink命名空間中,如果要在命名空間Agent中創(chuàng)建一個(gè)類(lèi)Test,并在該類(lèi)中實(shí)例化一個(gè)CallBack類(lèi),就需要指定使用哪個(gè)類(lèi)。
因?yàn)閡sing語(yǔ)句在C#文件的開(kāi)頭,C和C++也把#include放在這里,所以從C++遷移到C#的程序員常把命名空間與C++風(fēng)格的頭文件相混淆。不要犯這種錯(cuò)誤,using語(yǔ)句在這些文件之間并沒(méi)有真正建立物理鏈接。C#也沒(méi)有對(duì)應(yīng)于C++頭文件的部分。
命名空間的別名
using關(guān)鍵字的另一個(gè)用途是給類(lèi)和命名空間指定別名。如果命名空間的名稱(chēng)非常長(zhǎng),又要在代碼中使用多次,但不希望該命名空間的名稱(chēng)包含在using指令中(例如,避免類(lèi)名沖突),就可以給該命名空間指定一個(gè)別名,其語(yǔ)法如下:
using alias = NamespaceName;
ASP.NET中各命名空間及作用
命名空間 描述
Microsoft.CSharp 支持C#語(yǔ)言編譯和生成代碼
System 包含了基礎(chǔ)類(lèi),用于定義類(lèi)型/數(shù)組/字符串/事件/事件處理程序/異常處理/接口/數(shù)據(jù)類(lèi)型轉(zhuǎn)換/數(shù)學(xué)計(jì)算/應(yīng)用程序環(huán)境管理等等
System.Coolections 包含了一組用于管理對(duì)象集合(例如列表/隊(duì)列/數(shù)組/哈希表/字典等)的類(lèi)
System.Data 主要包括了組成ADO.NET體系結(jié)構(gòu)的類(lèi)
深圳市南山區(qū)南山街道南海大道西桂廟路北陽(yáng)光華藝大廈1棟4F、4G-04
咨詢(xún)電話:136 8237 6272
大客戶(hù)咨詢(xún):139 0290 5075
業(yè)務(wù)QQ:195006118
技術(shù)QQ:179981967
深圳精銳軟件 深圳APP開(kāi)發(fā) 深圳小程序開(kāi)發(fā) 深圳微信開(kāi)發(fā) 深圳APP制作 深圳營(yíng)銷(xiāo)推廣 深圳網(wǎng)站建設(shè) 深圳游戲開(kāi)發(fā)
客戶(hù)案列
新聞資訊
資質(zhì)榮譽(yù)
團(tuán)隊(duì)風(fēng)采
項(xiàng)目進(jìn)度查詢(xún)
售前QQ咨詢(xún)
QQ溝通 項(xiàng)目QQ溝通