1. 程式人生 > >三種C# using的用法

三種C# using的用法

C# using的用法很廣泛,最常見C# using的用法莫過於在程式檔案的開頭引入System名稱空間。同時還有別的用法,在本文有更多的解釋。

C# Using

(1)引用名稱空間

using作為引入名稱空間指令的用法規則為:

using Namespace;

在.NET程式中,最常見的程式碼莫過於在程式檔案的開頭引入System名稱空間,其原因在於System名稱空間中封裝了很多最基本最常用的操作,下面的程式碼對我們來說最為熟悉不過:

using System;

這樣,我們在程式中就可以直接使用名稱空間中的型別,而不必指定詳細的型別名稱。using指令可以訪問巢狀名稱空間。

關於:名稱空間

名稱空間是.NET程式在邏輯上的組織結構,而並非實際的物理結構,是一種避免類名衝突的方法,用於將不同的資料型別組合劃分的方式。例如,在.NET中很多的基本型別都位於System名稱空間,資料操作型別位於System.Data名稱空間,

(2)建立命名空間別名

using為名稱空間建立別名的用法規則為:

using alias = namespace | type;

其中namespace表示建立名稱空間的別名;而type表示建立類型別名。例如,在.NET Office應用中,常常會引入Microsoft.Office.Interop.Word.dll程式集,在引入名稱空間時為了避免繁瑣的型別輸入,我們通常為其建立別名如下:

  1. using MSWord = Microsoft.Office.Interop.Word;  

這樣,就可以在程式中以MSWord來代替Microsoft.Office.Interop.Word字首,如果要建立Application物件,則可以是這樣,而且還有一個好處就是,在一個.CS檔案中引入了不同的名稱空間但是相同的類名的時候,用別名就可以解決這問題了。

(3)強制資源清理

用途:清理非託管資源,不受GC控制的資源。Using結束後會隱式的呼叫Disposable方法。

用法:

  1. using (Class1 c = new Class1())   
  2. }//清理非託管不受GC控制的資源 

但是當物件使用using關鍵字的時候,必須實現IDisposable介面。其實using的使用和try-catch-finaly中,在finaly程式碼域呼叫Disposable方法效果一樣。注意Using不能使用多個不同的類       

  1. Class1 f = new Class1();   
  2. try
  3.          {                     //執行程式碼 
  4.          }   
  5. catch()   
  6.          {   
  7. //異常處理 
  8.          }   
  9. finally
  10.          {   
  11.              f.Disposable();   
  12.          } 

using 語句獲取一個或多個資源,執行一個語句,然後處置該資源。    

C# using的用法:

using ( 資源獲取 ) 嵌入語句

資源獲取:

區域性變數宣告

表示式

資源是實現System.IDisposable 的類或結構,它包含名為Dispose 的單個無引數方法。(如:截圖2)正在使用資源的程式碼可以呼叫Dispose以指示不再需要該資源。如果不呼叫Dispose,則最終將因為垃圾回收而發生自動處置。

如果資源獲取的形式是區域性變數宣告,那麼此區域性變數宣告的型別必須為System.IDisposable 或是可以隱式轉換為 System.IDisposable 的型別。如果資源獲取的形式是表示式,那麼此表示式必須是System.IDisposable 或是可以隱式轉換為System.IDisposable 的型別。

在資源獲取中宣告的區域性變數必須是隻讀的,且必須包含一個初始值設定項。

using 語句被翻譯成三個部分:獲取、使用和處置。資源的使用隱式封閉在包含一個 finally 子句的 try語句中。此 finally 子句處置資源。如果獲取了 null 資源,則不進行對 Dispose 的呼叫,也不引發任何異常。

例如,下列形式的C# using語句

  1. using (R r1 = new R()) {   
  2. r1.F();   
  3. }   
  4. 完全等效於   
  5. R r1 = new R();   
  6. try {   
  7. r1.F();   
  8. }   
  9. finally {   
  10. if (r1 != null) ((IDisposable)r1).Dispose();   
  11. }  

截圖1:


C# using程式碼

using確保執行IDisposable介面的物件在退出塊時立即釋放,主要是為了防止忘記關閉資料庫連線可能導致的.net可執行程式的各種問題。

截圖2:

相關推薦

C# using用法

C# using的用法很廣泛,最常見C# using的用法莫過於在程式檔案的開頭引入System名稱空間。同時還有別的用法,在本文有更多的解釋。 C# Using (1)引用名稱空間 using作為引入名稱空間指令的用法規則為: using Namespace; 在.

Linux Shell中有引號的用法

containe ubunt ref highlight 處理 alt 返回 cin test Linux Shell中有三種引號,分別為雙引號(" ")、單引號(‘ ‘)以及反引號(` `)。 其中雙引號對字符串中出現的$、‘‘、`和\進行替換;單引號不進行替換,將字符串

TensorFlow 中啟動圖用法

轉自https://blog.csdn.net/lyc_yongcai/article/details/73467480 TensorFlow 中有三種啟動圖的方法:tf.Session(),tf.InteractivesSession(),tf.train.Supervisor().manag

C#using 用法

void ExecuteCommand( string connString, string commandString ) { SqlConnection myConnection = new SqlConnection( connString ); SqlCommand mySql

C#.net生成靜態頁面的方法

   System.IO.StreamReader reader = new System.IO.StreamReader(respStream,System.Text.Encoding.GetEncoding("gb2312"));

C/C++建立資料夾的方法

第一種: 呼叫MFC封裝好的介面函式,主要會用到 PathIsDirectory //判斷是否存在::CreateDirectory //建立例如: #include "shlwapi.h" #pragma comment(lib,"shlwapi.lib") #in

C#-using用法詳解

    ③可以有多個物件與 using 語句一起使用,但是必須在 using 語句內部宣告這些物件。        using (Font font3=new Font("Arial",10.0f), font4=new Font("Arial",10.0f))       {           // Us

TensorFlow 中啟動圖 用法

介紹 TensorFlow 中啟動圖:  tf.Session(),tf.InteractivesSession(),tf.train.Supervisor().managed_session()  用法的區別: (1)tf.Session()          構造階段

shell 中引號的用法及區別

Linux Shell中有三種引號,分別為雙引號(" ")、單引號(' ')以及反引號(` `)。 其中雙引號對字串中出現的$、''、`和\進行替換;單引號不進行替換,將字串中所有字元作為普通字元輸出,而反引號中字串作為shell命令執行,並返回執行結果。具體含義如下:

c#中using用法

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

C#學習筆記】using 使用方式

ride over 啟動 類型 thread catch key log 調用 1.using指令。using + 命名空間名字,這樣可以在程序中直接用命令空間中的類型,而不必指定類型的詳細命名空間,類似於Java的import,這個功能也是最常用的,幾乎每個cs的程序都會

C#中“?”有用法

c 1、可空類型修飾符(?):引用類型可以使用空引用表示一個不存在的值,而值類型通常不能表示為空,例如:string str=null;是正確的。int i=null;編譯器將報錯。為了使值類型也可為空,可空類型出現了,可空類型使用可空類型修飾符?來表示,表現形式為T?。例:int?表示是可空的整形,Date

C# 中使用using方法

1.using指令using+名稱空間,這種方法基本學習過C#的都用過,好處在於,寫程式碼的時候不需要指定詳細的名稱空間using System.Windows.Media; using System.Windows.Media.Imaging;2.using語句是用來簡化資源釋放的,在一定的範圍內有效,除了

c#中using使用

C# 中使用using的三種方法 1.using指令 using+名稱空間,這種方法基本學習過C#的都用過,好處在於,寫程式碼的時候不需要指定詳細的名稱空間 using System.Windows.Media; using System.Windows.Media.Imaging; 2.usin

分享:C語言的不定引數,省略號用法

1. #define log(...) log2(__VA_ARGS__)    2. #deinfe log(fmt...) log2(fmt)    3. #define log(fmt,...) log2(fmt, ##__VA_ARGS__) 三者作用一樣,只是

C++new的用法

1. new() 分配這種型別的一個大小的記憶體空間,並以括號中的值來初始化這個變數; 2. new[] 分配這種型別的n個大小的記憶體空間,並用預設建構函式來初始化這些變數; #include<iostream> #include<cstring>

C#中New關鍵字的用法

三種用法如下:   在 C# 中,new 關鍵字可用作運算子、修飾符或約束。   1)new 運算子:用於建立物件和呼叫建構函式。這種大家都比較熟悉,沒什麼好說的了。   2)new 修飾符:在用作修飾符時,new 關鍵字可以顯式隱藏從基類繼承的成員。   3)n

using用法

{     class MyClass      {         public override string ToString()          {             return "You are in NameSpace2.MyClass";         }     } } names

C++ new的用法詳細解析

一. 簡介new有三種使用方式:plain new,nothrow new和placement new。(1)plain new顧名思義就是普通的new,就是我們慣常使用的new。在C++中是這樣定義的:    void* operator new(std::size_t)

c# pictureBox1.Image的獲得圖片路徑的方法 winform

相對 body req () ebr art www ref clas 代碼如下:c# pictureBox1.Image的獲得圖片路徑的三種方法 winform 1.絕對路徑:this.pictureBox2.Image=Image.FromFile("D:\\00