C# 對象處置

王林
發布: 2024-09-03 15:04:30
原創
1160 人瀏覽過

為了釋放和重置非託管資源(例如與資料庫、檔案等的連接),並執行記憶體清理,我們使用 C# 中名為 dispose of () 的函數。它必須實作 IDisposable 接口,並且必須由使用者明確調用,而不是由垃圾收集器調用。使用 dispose of () 方法時的效能成本為空,因為 dispose() 方法會立即清理內存,從而優化內存,因此使用此函數來清理非託管資源(例如文件和資料庫連接)非常重要強烈建議。

文法:

dispose();
登入後複製

dispose() 函數的工作原理

dispose() 函數的工作原理如下:

  • 為了釋放和重置非託管資源(例如與資料庫、檔案等的連接),並執行記憶體清理,我們使用 C# 中名為 dispose of () 的函數。
  • C#中的dispose()函數必須實作IDisposable介面。
  • C# 中的 dispose of () 函數必須由使用者明確調用,而不是由垃圾收集器調用。
  • 使用 dispose of () 方法時的效能成本為空,因為 dispose of () 方法會立即清理內存,從而優化內存,因此使用此函數來清理非託管資源,例如文件和連接非常推薦資料庫。

C# 物件處置範例

讓我們討論一下 C# 物件處理的範例。

範例#1

C# 程式透過實作 IDisposable 介面並明確呼叫 dispose() 函數來顯示對應的訊息來示範 dispose() 函數的用法:

代碼:

using System;
using System.IO;
using System;
//a class called demonstratingclass is defined and it implements the IDidposable interface
public class demonstratingclass : IDisposable
{
//the dispose() method is defined to to perform the release of the required resources
public void Dispose()
{
Console.WriteLine("The dispose() function has been called and the resources have been released!");
}
}
//another class called demofordispose is defined
public class demofordispose
{
//main method is called
public static void Main()
{
//an instance of the demonstratingclass is created
var result = new demonstratingclass();
//the dispose() method is called on the instance of the demonstratingclass to release it from the memory
result.Dispose();
}
}
登入後複製

輸出:

C# 對象處置

在上面的程式中,定義了一個名為示範類別的類,它實作了 IDidposable 介面。然後在實作IDisposable介面的示範類別中定義dispose()方法來執行所需資源的釋放。然後定義另一個名為 demofordispose 的類,在其中呼叫 main 方法。在 main 方法中,建立了演示類別的實例。然後在演示類別的實例上呼叫 dispose of () 函數,將其從記憶體中釋放,並顯示相應的訊息。

範例#2

C# 程式透過實作 IDisposable 介面並明確呼叫 dispose of () 函數來顯示對應的訊息來示範 dispose of () 函數的用法:

代碼:

using System;
//a class called demonstratingclass is defined and it implements the IDidposable interface
public class demonstratingclass : IDisposable
{
//the dispose() method is defined to to perform the release of the required resources
public void Dispose()
{
Console.WriteLine( "The resources have been released because the dispose function is called upon them");
}
}
//another class called demofordispose is defined
public class demofordispose
{
//main method is called
public static void Main()
{
//an instance of the demonstratingclass is created
var check = new demonstratingclass();
//the dispose() method is called on the instance of the demonstratingclass to release it from the memory
check.Dispose();
}
}
登入後複製

輸出:

C# 對象處置

在上面的程式中,定義了一個名為示範類別的類,它實作了 IDidposable 介面。然後在實作IDisposable介面的示範類別中定義dispose()方法來執行所需資源的釋放。然後定義另一個名為 demofordispose 的類,在其中呼叫 main 方法。在 main 方法中,建立了演示類別的實例。然後,在演示類別的實例上呼叫 dispose of () 函數,將其從記憶體中釋放,並顯示相應的訊息。

範例3

C# 程式透過實作 IDisposable 介面並明確呼叫 dispose() 函數來顯示對應的訊息來示範 dispose() 函數的用法:

代碼:

using System;
//a class called demonstratingclass is defined and it implements the IDidposable interface
public class demonstratingclass : IDisposable
{
//the dispose() method is defined to to perform the release of the required resources
public void Dispose()
{
Console.WriteLine("The dispose() function is releasing the specified resources freeing them from the memory.");
}
}
//another class called demofordispose is defined
public class demofordispose
{
//main method is called
public static void Main()
{
//an instance of the demonstratingclass is created
var check1 = new demonstratingclass();
//the dispose() method is called on the instance of the demonstratingclass to release it from the memory
check1.Dispose();
}
}
登入後複製

輸出:

C# 對象處置

在上面的程式中,定義了一個名為示範類別的類,它實作了 IDidposable 介面。然後在實作IDisposable介面的示範類別中定義dispose()方法來執行所需資源的釋放。然後定義另一個名為 demofordispose 的類,在其中呼叫 main 方法。在 main 方法中,建立了演示類別的實例。然後在演示類別的實例上呼叫 dispose() 函數,將其從記憶體中釋放,並顯示對應的訊息。

結論

在本文中,我們透過程式設計範例及其輸出,透過 C# 中 dispose of () 函數的定義、語法和工作原理了解了 C# 中 dispose of () 函數的概念。

以上是C# 對象處置的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!