根據微軟官方的文件說明
提供方便的語法,以確保正確使用 IDisposable 物件
對於有使用到非受管理記憶體或者資源的類別,他們通常都會實作
IDisposable
介面,當我們不再需要使用到這些類別所產生的物件的時候,建議手動執行這些物件的 Dispose() 方法,讓這些非受到管理的記憶體與資源可以受到釋放,並且也縮短這個物件停留在受管理執行階段的記憶體存留時間。
對於像是有實作
IDisposable
介面的物件,我們可以使用 using 陳述式,這個語法糖,幫助我們簡化與確實確認在該物件不再使用的時候(不論在執行階段是否有例外異常發生),都會執行 Dispose() 方法。
在底下的程式碼,我們可以知道,
HttpClient
有實作 IDisposable
介面,因此,在建立這個物件的當時,我們就使用 using 陳述式將其包起來;當這個區塊程式碼結束執行之後,就會立即執行 client.Dispose() 方法。using (var client = new HttpClient())
{
var content = client.GetStringAsync("http://www.google.com").Result;
Console.WriteLine(content);
}
Console.WriteLine($"Press any key for continuing...{Environment.NewLine}");
Console.ReadKey();