Skip to content

CSharp Resources

Codex edited this page Oct 11, 2026 · 2 revisions

Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어

Звільнення ресурсів: IDisposable, using та await using

Посібник C# · Приклади UO

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.

Clone this wiki locally