Skip to content

IT CSharp Resources

Bad Newbie edited this page Oct 16, 2026 · 3 revisions

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

Risorse di rilascio: IDisposable, using e await using

Manuale C# · Esempi UO

IDisposable.Dispose rilascia una risorsa quando non è più necessaria. using associa lo sganciatore all'area codice; await using sta aspettando IAsyncDisposable.DisposeAsync. Il Garbage Collector libera la memoria gestita e non sostituisce la chiusura tempestiva di file e altre risorse esterne.

Esempio semplice (Example.cs)

Salvare questo esempio separatamente come Example.cs. Eseguirlo indipendentemente dagli altri esempi di questa pagina.

Example.cs:

// PROJECT-EXAMPLE
using System;
using (var stream = new System.IO.MemoryStream())
{
    stream.WriteByte(65);
    Console.WriteLine(stream.Length);
}

Risultato:

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());

Documentazione ufficiale: Risorse di rilascio: IDisposable, using e await using - Microsoft Impara.

Clone this wiki locally