ZH TW CSharp Resources - LIHACHTETAN/ClassicUO-Bad-Newbie-CSharp-Scripts-IDE GitHub Wiki
Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
釋放資源:IDisposable、using、await using
IDisposable.Dispose 當不再需要資源時釋放該資源。 using將發布與代碼區關聯起來;await using正在等待IAsyncDisposable.DisposeAsync。垃圾收集器釋放託管內存,並不能取代及時關閉文件和其他外部資源。
簡單範例 (Example.cs)
請將此範例另存為 Example.cs,並與本頁其他範例分開執行。
Example.cs:
// PROJECT-EXAMPLE
using System;
using (var stream = new System.IO.MemoryStream())
{
stream.WriteByte(65);
Console.WriteLine(stream.Length);
}
結果:
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());
官方文件: 釋放資源: IDisposable, using 和 await using — Microsoft Learn.