程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#基礎知識 >> c#中的using用法

c#中的using用法

編輯:C#基礎知識
using語句:

1、 命名空間指示符,用於引用命名空間

如:using Sysytem;

2、 別名指示符(指定命名空間或類的別名)

如:using Dos=System.Console;

3、 資源管理的語句功能

如:

using(Font F= new Font(“宋體”,12))

{
Console.WriteLine(F.Italic.ToString());
}//運行結束時,釋放了F對象
在第三種用法裡.C# using語句,用於定義一個范圍,在此范圍的末尾將釋放對象.
C# using語句方法我們就比較少用了,它常見於非托管資源(也就是在C++編程裡面可能碰到的句柄和設備上下文),這些資源使用完畢後,是必須釋放的。在C#裡面,由於完全的面向對象編程,這些資源類型都實現了IDisposable接口,因此會使用在捕獲異常try…catch語句的finally塊中釋放資源,代碼如下:

{
Font font1 = new Font("Arial", 10.0f);
try
{
byte charset = font1.GdiCharSet;
}
finally
{
if (font1 != null)
((IDisposable)font1).Dispose();
}
}
這樣確保調用Dispose,從而保證釋放資源。(請注意,使用額外的大括號為對象創建有效的范圍而此時如果使用using語句,同樣能夠獲得相同的結果,代碼如下:

using (Font font3 = new Font("Arial", 10.0f), font4 = new Font("Arial", 10.0f))
{
// Use font3 and font4.
}
using語句按照正確的方式調用對象上的Dispose方法,並(在您按照前面所示方式使用它時)會導致在調用 Dispose 時對象自身處於范圍之外。在using塊中,對象是只讀的並且無法進行修改或重新分配。

同時還要注意的一點是:

按照規則,當使用IDisposable對象時,應在using語句中聲明和實例化此對象。雖然可以在using語句外實例化資源對象,代碼如下:

Font font2 = new Font("Arial", 10.0f);
using (font2) // not recommended
{
// use font2
}
// font2 is still in scope
// but the method call throws an exception
float f = font2.GetHeight();

在這種情況下,該對象將在控制權離開 using 塊之後保持在范圍內,即使它可能將不再具有對其非托管資源的訪問權也是如此。換句話說,再也不能完全初始化該對象。如果試圖在 using 塊外部使用該對象,則可能導致引發異常,如上述代碼段3中的font2.GetHeight()調用而產生異常。由於這個原因,通常最好是在 using 語句中實例化該對象並將其范圍限制在 using 塊中。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved