C#命名空间
轉自:http://dev.yesky.com/msdn/192/2549192.shtml
?命名空間提供了一種組織相關類和其他類型的方式。與文件或組件不同,命名空間是一種邏輯組合,而不是物理組合。在C#文件中定義類時,可以把它包括在命名空間定義中。以后,在定義另一個類,在另一個文件中執(zhí)行相關操作時,就可以在同一個命名空間中包含它,創(chuàng)建一個邏輯組合,告訴使用類的其他開發(fā)人員這兩個類是如何相關的以及如何使用它們:
namespace CustomerPhoneBookApp
{
using System;
public struct Subscriber
{
// Code for struct here...
}
}
?把一個類型放在命名空間中,可以有效地給這個類型指定一個較長的名稱,該名稱包括類型的命名空間,后面是句點(.)和類的名稱。在上面的例子中,Subscriber結構的全名是CustomerPhoneBookApp.Subscriber。這樣,有相同短名的不同的類就可以在同一個程序中使用了。
也可以在命名空間中嵌套其他命名空間,為類型創(chuàng)建層次結構:
namespace Wrox
{
namespace ProCSharp
{
namespace Basics
{
class NamespaceExample
{
// Code for the class here...
}
}
}
}
?每個命名空間名都由它所在命名空間的名稱組成,這些名稱用句點分隔開,首先是最外層的命名空間,最后是它自己的短名。所以ProfessionalCSharp命名空間的全名是Wrox.ProCSharp,NamespaceExample類的全名是Wrox.ProCSharp.Basics.NamespaceExample。
使用這個語法也可以組織自己的命名空間定義中的命名空間,所以上面的代碼也可以寫為:
namespace Wrox.ProCSharp.Basics
{
class NamespaceExample
{
// Code for the class here...
}
}
?注意不允許在另一個嵌套的命名空間中聲明多部分的命名空間。
命名空間與程序集無關。同一個程序集中可以有不同的命名空間,也可以在不同的程序集中定義同一個命名空間中的類型。
using語句
顯然,命名空間相當長,鍵入起來很繁瑣,用這種方式指定某個特定的類也是不必要的。如本章開頭所述,C#允許簡寫類的全名。為此,要在文件的頂部列出類的命名空間,前面加上using關鍵字。在文件的其他地方,就可以使用其類型名稱來引用命名空間中的類型了:
using System;
using Wrox.ProCSharp
?如前所述,所有的C#源代碼都以語句using System;開頭,這僅是因為Microsoft提供的許多有用的類都包含在System命名空間中。
如果using指令引用的兩個命名空間包含同名的類,就必須使用完整的名稱(或者至少較長的名稱),確保編譯器知道訪問哪個類型,例如,類NamespaceExample同時存在于Wrox.ProCSharp.Basics和Wrox.ProCSharp.OOP命名空間中,如果要在命名空間Wrox.ProCSharp中創(chuàng)建一個類Test,并在該類中實例化一個NamespaceExample類,就需要指定使用哪個類:
using Wrox.ProCSharp;
class Test
{
public static int Main()
{
Basics.NamespaceExample nSEx = new Basics.NamespaceExample();
//do something with the nSEx variable
return 0;
}
}
?因為using語句在C#文件的開頭,C和C++也把#include放在這里,所以從C++遷移到C#的程序員常把命名空間與C++風格的頭文件相混淆。不要犯這種錯誤,using語句在這些文件之間并沒有真正建立物理鏈接。C#也沒有對應于C++頭文件的部分。
公司應花一定的時間開發(fā)一種命名空間模式,這樣其開發(fā)人員才能快速定位他們所需要的功能,而且公司內(nèi)部使用的類名也不會與外部的類庫相沖突。本章后面將介紹建立命名空間模式的規(guī)則和其他命名約定。
命名空間的別名
using關鍵字的另一個用途是給類和命名空間指定別名。如果命名空間的名稱非常長,又要在代碼中使用多次,但不希望該命名空間的名稱包含在using指令中(例如,避免類名沖突),就可以給該命名空間指定一個別名,其語法如下:
using alias = NamespaceName;
下面的例子(前面例子的修訂版本)給Wrox.ProCSharp.Basics命名空間指定別名Introduction,并使用這個別名實例化了一個NamespaceExample對象,這個對象是在該命名空間中定義的。它有一個方法GetNamespace(),該方法調(diào)用每個類都有的GetType()方法,以訪問表示類的類型的Type對象。
下面使用這個對象來返回類的命名空間名:
using System;
using Introduction = Wrox.ProCSharp.Basics;
class Test
{
public static int Main()
{
Introduction.NamespaceExample NSEx =new Introduction.NamespaceExample();
Console.WriteLine(NSEx.GetNamespace());
return 0;
}
}
namespace Wrox.ProCSharp.Basics
{
class NamespaceExample
{
public string GetNamespace()
{
return this.GetType().Namespace;
}
}
}
?
轉自:http://www.cnblogs.com/wlwjc/articles/1690225.html
?
一、基礎命名空間
System.Collections:包含了一些與集合相關的類型,比如列表,隊列,位數(shù)組,哈希表和字典等;
System.IO:包含了一些數(shù)據(jù)流類型并提供了文件和目錄同步異步讀寫;
System.Text:包含了一些表示字符編碼的類型并提供了字符串的操作和格式化;
System.Reflection:包括了一些提供加載類型,方法和字段的托管視圖以及動態(tài)創(chuàng)建和調(diào)用類型功能的類型;
System.Threading:提供啟用多線程的類和接口;
二、圖形命名空間
System.Drawing:這個主要的GDI+命名空間定義了許多類型,實現(xiàn)基本的繪圖類型(字體,鋼筆,基本畫筆等)和無所不能的Graphics對象;
System.Drawing2D:這個命名空間提供高級的二維和失量圖像功能;
System.Drawing.Imaging:這個命名空間定義了一些類型實現(xiàn)圖形圖像的操作;
System.Drawing.Text:這個命名空間提供了操作字體集合的功能;
System.Drawing.Printing:這個命名空間定義了一些類型實現(xiàn)在打印紙上繪制圖像,和打印機交互以及格式化某個打印任務的總體外觀等功能;
三、數(shù)據(jù)命名空間
System.Data:包含了數(shù)據(jù)訪問使用的一些主要類型;
System.Data.Common:包含了各種數(shù)據(jù)庫訪問共享的一些類型;
System.XML:包含了根據(jù)標準來支持XML處理的類;
System.Data.OleDb:包含了一些操作OLEDB數(shù)據(jù)源的類型;
System.Data.Sql:能使你枚舉安裝在當前本地網(wǎng)絡的SQL Server實例;
System.Data.SqlClient:包含了一些操作MS SQL Server數(shù)據(jù)庫的類型,提供了和 System.Data.OleDb相似的功能,但是針對SQL做了優(yōu)化;
System.Data.SqlTypes:提供了一些表示SQL數(shù)據(jù)類型的類;
System.Data.Odbc:包含了操作Odbc數(shù)據(jù)源的類型;
System.Data.OracleClient:包含了操作Odbc數(shù)據(jù)庫的類型;
System.Transactions:這個命名空間提供了編寫事務性應用程序和資源管理器的一些類;
四、WEB命名空間
System.Web:這個命名空間包含啟用瀏覽器/服務器通信的類和接口.這些命名空間類用于管理到客戶端的HTTP輸出和讀取HTTP請求.附加的類則提供了一些功能,用于服 務器端的應用程序以及進程,Cookie管理,文件傳輸,異常信息和輸出緩存的控制;
System.Web.UI:這個命名空間包含Web窗體的類,包括Page類和用于創(chuàng)建Web用戶界面的其 他標準類;
System.Web.UI.HtmlControls:這個命名空間包含用于HTML特定控件的類,這些控件可以添加到Web窗體中 以創(chuàng)建Web用戶界面;
System.Web.UI.WebControls:包含創(chuàng)建ASP.NET服務器控件的類,當添加到窗體時,這些控件將呈現(xiàn)瀏覽器特 定的HTML和腳本,用于創(chuàng)建和設備無關的Web用戶界面;
System.Web.Mobile:包含生成ASP.NET移動應用程序所需要的核心功能,包括身份驗證和錯誤處理;
System.Web.UI.MobileControls:包括一組ASP.NET服務器控件,這些控件可以針對不同的移動設備呈現(xiàn)應用程序;
System.Web.Services:包含能使你使用和生成XML Web Service的類,這些服務是駐留在服務器中的 可編程實體,并通過標準Internet協(xié)議公開;
五、框架服務命名空間
System.Diagnostics:這個命名空間所提供的類允許你啟動系統(tǒng)進程,讀取和寫入事件日志以及使用性能計數(shù)器監(jiān)視系統(tǒng)性能;
System.DirectoryServices:這個命名空間所提供的類可便于從托管代碼中訪問Active Directory.此命名空 間中的類可以與任何Active Directory服務提供程序一起使用;
System.Media:包含用于播放聲音文件和訪問系統(tǒng)提供的聲音的類;
System.Management:這個命名空間提供的類用于管理一些信息和事件,它們關系到系統(tǒng),設備和WMI 基礎結構所使用的應用程序;
System.Messaging:這個命名空間提供的類用于連接到網(wǎng)絡上的消息隊列,向隊列發(fā)送消息,從隊列 接收或查看消息;
System.ServiceProcess:這個命名空間提供的類用于安裝和運行服務,服務是長期運行的可執(zhí)行文件,它 們不通過用戶界面來運行;
System.Timers:這個命名空間提供基于服務器的計時器組件,用以按指定的間隔引發(fā)事件;
六、安全性命名空間
System.Security:這個命名空間提供公共語言運行庫安全性系統(tǒng)的基礎結構;
System.Net.Security:這個命名空間提供用于主機間安全通信的網(wǎng)絡流;
System.Web.Security:這個命名空間包含的類用于在Web應用程序中實現(xiàn)ASP.NET安全性;
七、網(wǎng)絡命名空間
System.Net:包含的類可為當前網(wǎng)絡上的多種協(xié)議提供簡單的編程接口;
System.Net.Cache:這個命名空間定義了一些類和枚舉,用于為使用WebRequest和HttpWebRequest類獲取的資源定義緩存策略;
System.Net.Configuration:這個命名空間包含了以編程方式訪問和更新System.Net命名空間的配置設置的類;
System.Net.Mime:這個命名空間包含了用于將電子郵件發(fā)送到SMTP服務器進行傳送的類;
System.Net.Networkinformation:這個命名空間提供對網(wǎng)絡流量數(shù)據(jù),網(wǎng)絡地址信息和本地計算機的地址更改通知的訪問,還包含實現(xiàn)Ping實用工具的類.你可以使用Ping和相關的類來檢查是否可通過網(wǎng)絡訪問某臺計算機;
System.Net.Sockets:這個命名空間為嚴格控制網(wǎng)絡訪問的開發(fā)人員提供Windows套接字接口的托管實現(xiàn);
八、配置命名空間
System.Configuration:這個命名空間包含用于以編程方式訪問.Net Framework配置設置并處理配置文件中錯誤的類;
System.Configuration.Assemblies:這個命名空間包含用于配置程序集的類;
System.Configuration.Provider:這個命名空間包含由服務器和客戶端應用程序共享,以支持可插接式模型輕松添加或移除功能的基類;
九、本地化命名空間
System.Globalization:包含的類定義與區(qū)域性相關的信息,其中包括語言,國家\地區(qū),所使用的日歷,日期 格式的模式,貨幣與數(shù)字以及字符串的排序順序;
System.Resources:這個命名空間提供一些類和接口,它們使開發(fā)人員得以創(chuàng)建,存儲并管理應用程 序中使用的各種區(qū)域性特定資源;
System.Resources.Tools:這個命名空間包含StronglyTypedResourceBuilder類,該類提供對強類型資源 的支持.這個編譯時功能通過創(chuàng)建包含一組靜態(tài)只讀屬性的類封裝對資源的訪問, 從而使得使用資源變得更加容易
?
總結
- 上一篇: vs2008中,在OCX控件中应用doc
- 下一篇: vs2008中,创建基于对话框的mfc动