熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

c# using語句的用法

2022-06-13   來源: .NET編程 

  在net中有一個至關重要的關鍵字那就是using

  using一般有著以下幾種用法

  直接引入命名空間

  ausing System 這個是最常用的就是using+命名空間這樣就可以直接使用命名空間中的類型而免去了使用詳細的命名空間

  b使用全限定名

  不用使用using System;直接在程序中調用SystemConsoleWriteLine(Hello C#);

  第一種方法是比較常用的方法可以一次導入整個命名空間到當前命名空間比較方便

  不過如果在當前命名空間只使用一次命名空間中的某個類例如上例使用全限定名也是合適的

  不過在某些情況下必須使用全限定名比如在引入的兩個以上的命名空間中有重名的類例如System下有一個Console類在另一個自定義的命名空間MyNamespace中也有一個同名的Console類這時如果我們在第三個命名空間中同時引入了System和MyNamespace這時如果要使用某一個具體的Console就需要使用權限定名SystemConsole 或 MyNamespaceConsole否則編譯器不知道我們具體使用哪一個Console編譯無法通過

  using別名using + 別名 = 包括詳細命名空間信息的具體的類型

  例如我們用以下語句引入SystemIOCompression命名空間

  using Zip=SystemIOCompression;

  這時我們就可以用Zip表示SystemIOCompression命名空間使用ZipGZipStream就是使用SystemIOCompressionGZipStream給程序書寫帶來方便

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

  例如

using System;
using aClass = NameSpaceMyClass;
using bClass = NameSpaceMyClass;

namespace NameSpace
{
public class MyClass
{
public override string ToString()
{
return You are in NameSpaceMyClass;
}
}
}

namespace NameSpace
{
class MyClass
{
public override string ToString()
{
return You are in NameSpaceMyClass;
}
}
}

namespace testUsing
{
using NameSpace;
using NameSpace;
///
/// Class 的摘要說明
///
class Class
{
///
/// 應用程序的主入口點
///
[STAThread]
static void Main(string[] args)
{
//
// TODO: 在此處添加代碼以啟動應用程序
//

aClass my = new aClass();
ConsoleWriteLine(my);
bClass my = new bClass();
ConsoleWriteLine(my);
ConsoleWriteLine(Press any key);
ConsoleRead();
}
}
}

  using語句定義一個范圍在范圍結束時處理對象

  場景

  當在某個代碼段中使用了類的實例而希望無論因為什麼原因只要離開了這個代碼段就自動調用這個類實例的Dispose要達到這樣的目的用trycatch來捕捉異常也是可以的但用using也很方便

  例如

using (Class cls = new Class() cls = new Class())
{
// the code using cls cls

} // call the Dispose on cls and cls

  這裡觸發cls和cls的Dispose條件是到達using語句末尾或者中途引發了異常並且控制離開了語句塊


From:http://tw.wingwit.com/Article/program/net/201311/15256.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.