国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

c# using語(yǔ)句的用法

2019-11-17 04:17:00
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

前兩天看到老大的代碼在代碼里運(yùn)用了using語(yǔ)句,剛學(xué)c#以為using只是運(yùn)用在程序的開(kāi)始用來(lái)引入名字空間,后來(lái)上網(wǎng)搜了搜,發(fā)現(xiàn)using用在程序中還是挺有用的

找到一篇講的不錯(cuò)的博文,也懶得寫(xiě),轉(zhuǎn)載至此,本人不才也加了點(diǎn)改動(dòng),謝謝博主

http://blog.sina.com.cn/s/blog_3e33a6e30100b6m1.html

在net中有一個(gè)至關(guān)重要的關(guān)鍵字,那就是using

using一般有著以下幾種用法:

1、直接引入命名空間

a、using System ,這個(gè)是最常用的,就是using+命名空間,這樣就可以直接使用命名空間中的類型,而免去了使用詳細(xì)的命名空間

b、使用全限定名
不用使用using System;直接在程序中調(diào)用System.Console.WriteLine("Hello C#");

第一種方法是比較常用的方法,可以一次導(dǎo)入整個(gè)命名空間到當(dāng)前命名空間,比較方便。
不過(guò)如果在當(dāng)前命名空間只使用一次命名空間中的某個(gè)類,例如上例使用全限定名也是合適的。

不過(guò)在某些情況下必須使用全限定名,比如在引入的兩個(gè)以上的命名空間中有重名的類,例如System下有一個(gè)Console類,在另一個(gè)自定義的命名空間MyNamespace中也有一個(gè)同名的Console類,這時(shí)如果我們?cè)诘谌齻€(gè)命名空間中同時(shí)引入了System和MyNamespace,這時(shí)如果要使用某一個(gè)具體的Console就需要使用權(quán)限定名System.Console 或 MyNamespace.Console,否則編譯器不知道我們具體使用哪一個(gè)Console,編譯無(wú)法通過(guò)。


2.using別名。using + 別名 = 包括詳細(xì)命名空間信息的具體的類型。
例如我們用以下語(yǔ)句引入System.IO.ComPRession命名空間:
using Zip=System.IO.Compression;
這時(shí)我們就可以用Zip表示System.IO.Compression命名空間,使用Zip.GZipStream就是使用System.IO.Compression.GZipStream。給程序書(shū)寫(xiě)帶來(lái)方便。


這種做法有個(gè)好處就是當(dāng)同一個(gè)cs引用了兩個(gè)不同的命名空間,但兩個(gè)命名空間都包括了一個(gè)相同名字的類型的時(shí)候。當(dāng)需要用到這個(gè)類型的時(shí)候,就每個(gè)地方都要用詳細(xì)命名空間的辦法來(lái)區(qū)分這些相同名字的類型。而用別名的方法會(huì)更簡(jiǎn)潔,用到哪個(gè)類就給哪個(gè)類做別名聲明就可以了。注意:并不是說(shuō)兩個(gè)名字重復(fù),給其中一個(gè)用了別名,另外一個(gè)就不需要用別名了,如果兩個(gè)都要使用,則兩個(gè)都需要用using來(lái)定義別名的。

例如:

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 的摘要說(shuō)明。
         /// </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語(yǔ)句,定義一個(gè)范圍,在范圍結(jié)束時(shí)處理對(duì)象。

場(chǎng)景:

當(dāng)在某個(gè)代碼段中使用了類的實(shí)例,而希望無(wú)論因?yàn)槭裁丛颍灰x開(kāi)了這個(gè)代碼段就自動(dòng)調(diào)用這個(gè)類實(shí)例的Dispose。要達(dá)到這樣的目的,用try...catch來(lái)捕捉異常也是可以的,但用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語(yǔ)句末尾或者中途引發(fā)了異常并且控制離開(kāi)了語(yǔ)句塊


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 卓资县| 临澧县| 兴海县| 资讯 | 额敏县| 太仓市| 洛浦县| 射阳县| 晋城| 沁阳市| 贡觉县| 驻马店市| 招远市| 新丰县| 宝丰县| 沂水县| 娱乐| 赤壁市| 磴口县| 长顺县| 莆田市| 漳平市| 绥中县| 株洲市| 寿光市| 沙河市| 嘉禾县| 邯郸市| 枣阳市| 双辽市| 伊川县| 永平县| 缙云县| 酉阳| 麻栗坡县| 安国市| 蓬莱市| 北安市| 江陵县| 临汾市| 肇庆市|