KO CSharp Resources - LIHACHTETAN/ClassicUO-Bad-Newbie-CSharp-Scripts-IDE GitHub Wiki

ะฃะบั€ะฐั—ะฝััŒะบะฐ ยท ะ ัƒััะบะธะน ยท 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 ํ•™์Šต.