幾種using 的用法小結(jié)
1.using指令。using + 命名空間名字,這樣可以在程序中直接用命令空間中的類型,而不必指定類型的詳細(xì)命名空間,類似于Java的import,這個(gè)功能也是最常用的,幾乎每個(gè)cs的程序都會(huì)用到。
例如:using System; 一般都會(huì)出現(xiàn)在*.cs中。
2.using別名。using + 別名 = 包括詳細(xì)命名空間信息的具體的類型。
這種做法有個(gè)好處就是當(dāng)同一個(gè)cs引用了兩個(gè)不同的命名空間,但兩個(gè)命名空間都包括了一個(gè)相同名字的類型的時(shí)候。當(dāng)需要用到這個(gè)類型的時(shí)候,就每個(gè)地方都要用詳細(xì)命名空間的辦法來區(qū)分這些相同名字的類型。而用別名的方法會(huì)更簡潔,用到哪個(gè)類就給哪個(gè)類做別名聲明就可以了。注意:并不是說兩個(gè)名字重復(fù),給其中一個(gè)用了別名,另外一個(gè)就不需要用別名了,如果兩個(gè)都要使用,則兩個(gè)都需要用using來定義別名的。
例如:
using System;
using aClass = NameSpace1.MyClass;
using bClass = NameSpace2.MyClass;
namespace NameSpace1
{
public class MyClass
{
public override string ToString()
{
return "You are in NameSpace1.MyClass";
}
}
}
namespace NameSpace2
{
class MyClass
{
public override string ToString()
{
return "You are in NameSpace2.MyClass";
}
}
}
namespace testUsing
{
using NameSpace1;
using NameSpace2;
/// <summary>
/// Class1 的摘要說明。
/// </summary>
class Class1
{
/// <summary>
/// 應(yīng)用程序的主入口點(diǎn)。
/// </summary>
[STAThread]
static void Main(string[] args)
{
//
// TODO: 在此處添加代碼以啟動(dòng)應(yīng)用程序
//
aClass my1 = new aClass();
Console.WriteLine(my1);
bClass my2 = new bClass();
Console.WriteLine(my2);
Console.WriteLine("Press any key");
Console.Read();
}
}
}
3.using語句,定義一個(gè)范圍,在范圍結(jié)束時(shí)處理對(duì)象。
場景:
當(dāng)在某個(gè)代碼段中使用了類的實(shí)例,而希望無論因?yàn)槭裁丛?,只要離開了這個(gè)代碼段就自動(dòng)調(diào)用這個(gè)類實(shí)例的Dispose。
要達(dá)到這樣的目的,用try...catch來捕捉異常也是可以的,但用using也很方便。
例如:
using (Class1 cls1 = new Class1(), cls2 = new Class1())
{
// the code using cls1, cls2
} // call the Dispose on cls1 and cls2
這里觸發(fā)cls1和cls2的Dispose條件是到達(dá)using語句末尾或者中途引發(fā)了異常并且控制離開了語句塊。
相關(guān)文章
使用ASP.NET?Web?API構(gòu)建Restful?API
這篇文章介紹了使用ASP.NET?Web?API構(gòu)建Restful?API的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-04-04ASP.NET Session會(huì)導(dǎo)致的性能問題
你的站點(diǎn)有被客戶投訴很慢嗎?是不是查了很多遍還是沒有完全解決?是不是數(shù)據(jù)庫沒有發(fā)現(xiàn)異常,CPU也沒有異常,內(nèi)存占用量沒有異常,GC計(jì)數(shù)沒有異常,硬盤IO也沒有異常,帶寬沒有異常,線路沒有異常,沒有丟包,但就是被投訴?2009-07-07淺談ASP.NET Core 中間件詳解及項(xiàng)目實(shí)戰(zhàn)
這篇文章主要介紹了淺談ASP.NET Core 中間件詳解及項(xiàng)目實(shí)戰(zhàn),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2016-12-12Entity?Framework實(shí)現(xiàn)數(shù)據(jù)遷移
本文詳細(xì)講解了Entity?Framework實(shí)現(xiàn)數(shù)據(jù)遷移的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-03-03.NET與樹莓派控制彩色燈帶WS28XX的實(shí)現(xiàn)
這篇文章主要為大家介紹了.NET與樹莓派控制彩色燈帶WS28XX的實(shí)現(xiàn)過程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2022-04-04asp.net實(shí)現(xiàn)文件無刷新上傳方法匯總
本文給大家介紹的是asp.net實(shí)現(xiàn)文件無刷新上傳的2種方法,分別是使用swfupload插件和uploadify插件,講述的十分細(xì)致全面,附上示例,有需要的小伙伴可以參考下。2015-06-06.NET中的狀態(tài)機(jī)庫Stateless的操作流程
本文給大家介紹了.NET中的狀態(tài)機(jī)庫Stateless, 使用它我們可以很容易的定義出自己業(yè)務(wù)需要的狀態(tài)機(jī),或者基于狀態(tài)機(jī)的工作流,本文大部分的內(nèi)容都來自官方Github,有興趣的同學(xué)可以深入研究一下2021-12-12.NET Core WebApi中如何實(shí)現(xiàn)多態(tài)數(shù)據(jù)綁定實(shí)例代碼
這篇文章主要給大家介紹了關(guān)于.NET Core WebApi中如何實(shí)現(xiàn)多態(tài)數(shù)據(jù)綁定的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),并給出來完整的實(shí)例代碼,需要的朋友可以參考借鑒,下面來一起學(xué)習(xí)學(xué)習(xí)吧2018-08-08ASP.NET WebService中使用ASP.NET_SessionId的問題說明
proxy.CookieContainer存儲(chǔ)了客戶端的 ASP.NET_SessionId。這樣以后每次通過webservice 方法調(diào)用時(shí),都會(huì)將ASP.NET_SessionId傳遞到服務(wù)器端。2011-09-09