c# using

來源:互聯網
上載者:User

標籤:style   blog   http   color   os   使用   ar   java   sp   

1.using指令。using + 命名空間名字,這樣可以在程式中直接用命令空間中的類型,而不必指定類型的詳細命名空間,類似於Java的import,這個功能也是最常用的,幾乎每個cs的程式都會用到。 
例如:using System; 一般都會出現在*.cs中。

2.using別名。using + 別名 = 包括詳細命名空間資訊的具體的類型。 
這種做法有個好處就是當同一個cs引用了兩個不同的命名空間,但兩個命名空間都包括了一個相同名字的類型的時候。當需要用到這個類型的時候,就每個地方都要用詳細命名空間的辦法來區分這些相同名字的類型。而用別名的方法會更簡潔,用到哪個類就給哪個類做別名聲明就可以了。注意:並不是說兩個名字重複,給其中一個用了別名,另外一個就不需要用別名了,如果兩個都要使用,則兩個都需要用using來定義別名的。

3.using語句,定義一個範圍,在範圍結束時處理對象。 
情境: 
當在某個程式碼片段中使用了類的執行個體,而希望無論因為什麼原因,只要離開了這個程式碼片段就自動調用這個類執行個體的Dispose。 
要達到這樣的目的,用try...catch來捕捉異常也是可以的,但用using也很方便。

注意:

1.被using管理的對象必須實現Disposable介面
2.實現當using結束的時候,就會自動調用該對象的Dispose方法

3.using的本質就是一個try-finally 將using中的代碼寫在了try{}塊中,dispose方法寫在finally{}中,所以無論如何dispose方法都會被執行

 class Program    {        static void Main(string[] args)        {            //被using管理的對象必須實現Disposable介面            //實現當using結束的時候,就會自動調用該對象的Dispose方法                        //using的本質就是一個try-finally  將using中的代碼寫在了try{}塊中            //dispose方法寫在finally{}中,所以無論如何dispose方法都會被執行            using (Psrson p = new Psrson())            {                Console.WriteLine("p對象在using中");                //return;//即使加上return finally也會執行,只不過using後面的代碼不會執行而已            }            Console.WriteLine("p對象已經出來了");            Console.ReadKey();        }    }    /// <summary>    /// using 對象需要實現Disposable介面    /// </summary>    public class Psrson : IDisposable    {        public void Dispose()        {            Console.WriteLine("我被釋放了");        }    }

運行結果:

p對象在using中
我被釋放了
p對象已經出來了

對應的IL:

 

 

 

參考文獻:

http://www.cnblogs.com/fashui/archive/2011/09/29/2195061.html

c# using

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.