日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

using语句之-释放资源和异常处理

發(fā)布時間:2024/4/17 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 using语句之-释放资源和异常处理 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
有時,代碼要求非托管資源,如文件句柄、COM 包裝或 SQL 連接。在使用一個或多個此類資源完成了代碼后,Using?塊確保這些資源的釋放。這樣,其他代碼就可以使用它們。
托管資源由 .NET Framework 垃圾回收器 (GC) 釋放,您不需要進行任何額外的編碼。您也不需要用于托管資源的?Using?塊。
Using?塊有三個部分:獲取、使用和釋放。
  • 獲取表示創(chuàng)建變量并將其初始化,以便引用系統(tǒng)資源。Using?語句可獲取一個或多個資源,您可以在進入塊之前恰好獲取一個資源,并將其提供給?Using?語句。如果提供 resourceexpression,在將控制權(quán)傳遞給?Using?語句之前,您必須獲取資源。
  • 使用表示訪問資源并使用資源執(zhí)行操作。Using?和?End Using?之間的語句代表資源的使用過程。
  • 釋放表示針對 resourcename 中的對象調(diào)用?Dispose?方法。這使該對象可以完全終止其非托管資源。End Using?語句釋放?Using?塊控制的資源。

行為Using?塊的工作方式類似于?Try...Finally?構(gòu)造,在該構(gòu)造中,Try?塊使用資源,而?Finally?塊釋放資源。因此,不管您如何退出塊,Using塊都可確保資源的釋放。即使發(fā)生未處理的異常(除?StackOverflowException?外),也是如此。
Using?語句獲取的每個資源變量的范圍僅限于?Using?塊。
如果在?Using?語句中指定多個系統(tǒng)資源,效果就好像您將多個?Using?塊相互嵌套一樣。

Using 塊中的結(jié)構(gòu)化異常處理如果需要處理可能發(fā)生在?Using?塊中的異常,可以向該塊中添加一個完整的?Try...Finally?構(gòu)造。如果需要處理Using?語句未成功獲取資源的情況,可以進行測試,以確定 resourcename 是否為?Nothing

進行結(jié)構(gòu)化異常處理而不使用 Using 塊如果需要對資源的獲取進行更細(xì)致的控制,或者需要?Finally?塊中的附加代碼,可以將?Using?塊重寫為Try...Finally?構(gòu)造。下面的示例顯示主干?Try?和?Using?構(gòu)造,這兩個構(gòu)造在獲取和釋放 resource 過程中是等效的。

?? 在using語句內(nèi)的資源必須重載IDispose這個接口,上面說的可以看出,using只負(fù)責(zé)執(zhí)行所包含資源的一些操作,然后釋放掉,并不是能夠處理(using(){。。。。})大括號里的異常,如果擔(dān)心內(nèi)部發(fā)生異常,是要自己寫try和catch的。。。using System;

class C : IDisposable
{
public void UseLimitedResource()
{
Console.WriteLine("Using limited resource...");
}

void IDisposable.Dispose()
{
Console.WriteLine("Disposing limited resource.");
}
}

class Program
{
static void Main()
{
using (C c = new C())
{
c.UseLimitedResource();
}
Console.WriteLine("Now outside using statement.");
Console.ReadLine();
}
}


?

轉(zhuǎn)載于:https://www.cnblogs.com/hanyulcf/archive/2009/08/27/1554960.html

總結(jié)

以上是生活随笔為你收集整理的using语句之-释放资源和异常处理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。