CSharp关键字----using
在.net中有一個至關重要的關鍵字,那就是using
using一般有著以下幾種用法:
1、直接引入命名空間
a、using System ,這個是最常用的,就是using+命名空間,這樣就可以直接使用命名空間中的類型,而免去了使用詳細的命名空間
b、使用全限定名
不用使用using System;直接在程序中調用System.Console.WriteLine("Hello C#");
第一種方法是比較常用的方法,可以一次導入整個命名空間到當前命名空間,比較方便。
不過如果在當前命名空間只使用一次命名空間中的某個類,例如上例使用全限定名也是合適的。
不過在某些情況下必須使用全限定名,比如在引入的兩個以上的命名空間中有重名的類,例如System下有一個Console類,在另一個自定義的命名空間MyNamespace中也有一個同名的Console類,這時如果我們在第三個命名空間中同時引入了System和MyNamespace,這時如果要使用某一個具體的Console就需要使用權限定名System.Console 或 MyNamespace.Console,否則編譯器不知道我們具體使用哪一個Console,編譯無法通過。
2.using別名。using + 別名 = 包括詳細命名空間信息的具體的類型。
例如我們用以下語句引入System.IO.Compression命名空間:
using Zip=System.IO.Compression;
這時我們就可以用Zip表示System.IO.Compression命名空間,使用Zip.GZipStream就是使用System.IO.Compression.GZipStream。給程序書寫帶來方便。
這種做法有個好處就是當同一個cs引用了兩個不同的命名空間,但兩個命名空間都包括了一個相同名字的類型的時候。當需要用到這個類型的時候,就每個地方都要用詳細命名空間的辦法來區分這些相同名字的類型。而用別名的方法會更簡潔,用到哪個類就給哪個類做別名聲明就可以了。注意:并不是說兩個名字重復,給其中一個用了別名,另外一個就不需要用別名了,如果兩個都要使用,則兩個都需要用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;class Class1{[STAThread]static void Main(string[] args){aClass my1 = new aClass();Console.WriteLine(my1);bClass my2 = new bClass();Console.WriteLine(my2);Console.WriteLine("Press any key");Console.Read();}} } ?3.using語句,定義一個范圍,在范圍結束時處理對象。
場景:
當在某個代碼段中使用了類的實例,而希望無論因為什么原因,只要離開了這個代碼段就自動調用這個類實例的Dispose。要達到這樣的目的,用try...catch來捕捉異常也是可以的,但用using也很方便。
例如:
using (Class1 cls1 = new Class1(), cls2 = new Class1()) { // the code using cls1, cls2 } // call the Dispose on cls1 and cls2這里觸發cls1和cls2的Dispose條件是到達using語句末尾或者中途引發了異常并且控制離開了語句塊
轉載于:https://www.cnblogs.com/xiuyusoft/archive/2011/06/13/2080108.html
總結
以上是生活随笔為你收集整理的CSharp关键字----using的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 真正爱你的女人是这样的
- 下一篇: Apache Kafka(二)- Kak