国产欧美日韩第一页|日本一二三不卡视频|在线精品小视频,亚洲第一免费播放区,metcn人体亚洲一区,亚洲精品午夜视频

ASP.NET中的命名空間的簡(jiǎn)單介紹

2016-11-03 16:38:28 413

ASP.NET中的命名空間的簡(jiǎn)單介紹


在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)


System.diagnostics            提供用于調(diào)試/跟蹤,以及與系統(tǒng)進(jìn)程/事件日志/性能計(jì)數(shù)器進(jìn)行交互的類(lèi)


System.Drawing                 提供訪問(wèn)GDI+基本圖形功能(在System.Drawing以下的命名空間,包括System.Drawing.Drawing2D和 System.Drawing.Text等,提供了更高級(jí)和更特殊的GDI+圖形功能)的類(lèi)System.IO包含了用于讀寫(xiě)數(shù)據(jù)流/文件和普通輸入/輸出(I/O)功能的類(lèi)型和類(lèi)


System.Reflection                  包括提供類(lèi)型檢測(cè)和動(dòng)態(tài)綁定對(duì)象功能的類(lèi)和接口


System.reflection.Emit           生成動(dòng)態(tài)程序集


System.Text                          包含用于字符編碼/將字符塊轉(zhuǎn)換為字節(jié)快/將字節(jié)塊轉(zhuǎn)換為字符塊等功能的對(duì)象


System.Text.RegularExpressions     包含了提供訪問(wèn).NET框架正則表達(dá)引擎的類(lèi)


System.Timer                                提供了Timer組件


System.Web                                  包含了用于實(shí)施瀏覽器/服務(wù)器通信和其他Web相關(guān)功能的類(lèi)


System.Web.Services                     包含了用于創(chuàng)建和消費(fèi)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)


提交成功!非常感謝您的反饋,我們會(huì)繼續(xù)努力做到更好!

這條文檔是否有幫助解決問(wèn)題?

非常抱歉未能幫助到您。為了給您提供更好的服務(wù),我們很需要您進(jìn)一步的反饋信息:

在文檔使用中是否遇到以下問(wèn)題: