DE CSharp Resources - LIHACHTETAN/ClassicUO-Bad-Newbie-CSharp-Scripts-IDE GitHub Wiki
Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
Ressourcen freigeben: IDisposable, using und await using
IDisposable.Dispose gibt eine Ressource frei, wenn sie nicht mehr benötigt wird. using ordnet die Freigabe dem Codebereich zu; await using wartet auf IAsyncDisposable.DisposeAsync. Der Garbage Collector gibt verwalteten Speicher frei und ist kein Ersatz für das rechtzeitige Schließen von Dateien und anderen externen Ressourcen.
Einfaches Beispiel (Example.cs)
Speichern Sie dieses Beispiel separat als Example.cs. Führen Sie es unabhängig von den anderen Beispielen dieser Seite aus.
Example.cs:
// PROJECT-EXAMPLE
using System;
using (var stream = new System.IO.MemoryStream())
{
stream.WriteByte(65);
Console.WriteLine(stream.Length);
}
Ergebnis:
1
{
using var stream = new System.IO.MemoryStream();
stream.WriteByte(42);
stream.Position = 0;
UO.Print(stream.ReadByte().ToString());
}
sealed class Lease : IAsyncDisposable
{
public bool Released { get; private set; }
public ValueTask DisposeAsync()
{
Released = true;
return ValueTask.CompletedTask;
}
}
var lease = new Lease();
await using (lease)
{
await WaitAsync(10);
}
UO.Print(lease.Released.ToString());
Offizielle Dokumentation: Release-Ressourcen: IDisposable, using und await using – Microsoft Lernen.