csharp / intermediate
Snippet
Implementierung des Standard-Disposal-Musters
Das IDisposable-Muster ist ein grundlegendes Muster zur Verwaltung von Speicher und nicht verwalteten Ressourcen. Es stellt sicher, dass Ressourcen deterministisch freigegeben werden, anstatt auf den Garbage Collector (GC) zu warten.
snippet.cs
csharp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public class ResourceHandler : IDisposable{private bool _disposed = false;public void Dispose(){Dispose(true);GC.SuppressFinalize(this);}protected virtual void Dispose(bool disposing){if (_disposed) return;if (disposing){// Free managed objects here}_disposed = true;}}
Erklärung
1
IDisposable
Die Schnittstelle, die verwendet wird, um einen Mechanismus zur Freigabe nicht verwalteter Ressourcen bereitzustellen.
2
GC.SuppressFinalize(this)
Informiert den GC, dass der Finalisator des Objekts nicht ausgeführt werden muss, da die Bereinigung bereits erfolgt ist.
3
protected virtual void Dispose(bool disposing)
Eine geschützte Methode, die es Unterklassen ermöglicht, ihre eigene Bereinigungslogik bereitzustellen.