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

ะฃะบั€ะฐั—ะฝััŒะบะฐ ยท ะ ัƒััะบะธะน ยท English ยท Deutsch ยท Franรงais ยท Italiano ยท Espaรฑol ยท ็น้ซ”ไธญๆ–‡ ยท ๆ—ฅๆœฌ่ชž ยท ํ•œ๊ตญ์–ด

์ œ๋„ค๋ฆญ ๋ฐ ์œ ํ˜• ์ œํ•œ

์„ค๋ช…์„œ C# ยท ์˜ˆ์‹œ UO

์ผ๋ฐ˜ ์œ ํ˜• ๋˜๋Š” ๋ฉ”์†Œ๋“œ๋Š” ์œ ํ˜• ๋งค๊ฐœ๋ณ€์ˆ˜(์˜ˆ: T)๋ฅผ ๋ฐ›์Šต๋‹ˆ๋‹ค. ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์ด๋Ÿฌํ•œ ์œ ํ˜•์— ๋Œ€ํ•œ ํ˜ธ์ถœ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์ œ์•ฝ ์กฐ๊ฑด where์€ ๊ธฐ๋ณธ ์œ ํ˜•, ์ธํ„ฐํŽ˜์ด์Šค, class, struct, notnull, unmanaged ๋˜๋Š” ์•ก์„ธ์Šค ๊ฐ€๋Šฅํ•œ ์ƒ์„ฑ์ž new() ๋“ฑ ํ•„์ˆ˜ ์†์„ฑ์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

๊ฐ„๋‹จํ•œ ์˜ˆ์ œ (Example.cs)

์ด ์˜ˆ์ œ๋ฅผ Example.cs๋กœ ๋”ฐ๋กœ ์ €์žฅํ•˜๊ณ  ์ด ํŽ˜์ด์ง€์˜ ๋‹ค๋ฅธ ์˜ˆ์ œ์™€ ๋…๋ฆฝ์ ์œผ๋กœ ์‹คํ–‰ํ•˜์„ธ์š”.

Example.cs:

// PROJECT-EXAMPLE
T Echo<T>(T value) => value;
System.Console.WriteLine(Echo(7));
System.Console.WriteLine(Echo("ore"));

๊ฒฐ๊ณผ:

7
ore
T FirstOrFallback<T>(IReadOnlyList<T> values, T fallback)
{
    return values.Count > 0 ? values[0] : fallback;
}

int first = FirstOrFallback(new[] { 10, 20 }, 0);
UO.Print(first.ToString());
sealed class Store<T> where T : notnull
{
    private readonly HashSet<T> values = new();
    public bool Add(T value) => values.Add(value);
    public int Count => values.Count;
}

var store = new Store<string>();
store.Add("self");
UO.Print(store.Count.ToString());

์ผ๋ฐ˜ ์ธํ„ฐํŽ˜์ด์Šค ๋ฐ ๋Œ€๋ฆฌ์ž์˜ ๊ฒฝ์šฐ in ๋ฐ out๋Š” ๋ฐ˜๊ณต๋ถ„์‚ฐ๊ณผ ๊ณต๋ถ„์‚ฐ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์ด๋Š” in/out ๋ฉ”์†Œ๋“œ์˜ ๋งค๊ฐœ๋ณ€์ˆ˜์™€๋Š” ๋‹ค๋ฅธ ๋‹จ์–ด ์‚ฌ์šฉ์ž…๋‹ˆ๋‹ค. ํ˜ธํ™˜ ๊ฐ€๋Šฅํ•œ ์ฐธ์กฐ ์œ ํ˜•์˜ ์œ ํšจํ•œ ๋ณ€ํ™˜์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

๊ณต์‹ ๋ฌธ์„œ: ์œ ํ˜• ์ผ๋ฐ˜ ๋ฐ ์ œ์•ฝ ์กฐ๊ฑด - Microsoft Learn.

โš ๏ธ **GitHub.com Fallback** โš ๏ธ