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

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

๋Œ€๋ฆฌ์ž, ๋žŒ๋‹ค ๋ฐ ํด๋กœ์ €

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

๋Œ€๋ฆฌ์ž๋Š” ํŠน์ • ์„œ๋ช…์˜ ํ˜ธ์ถœ๋œ ํ•จ์ˆ˜๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. Action๋Š” ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•˜์ง€ ์•Š๊ณ , Func๋Š” ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ , Predicate<T>๋Š” bool๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. Lambda๋Š” arguments => expression ๋˜๋Š” ๋ธ”๋ก์œผ๋กœ ์ž‘์„ฑ๋ฉ๋‹ˆ๋‹ค. ์บก์ฒ˜๋œ ๋ณ€์ˆ˜๋Š” ํด๋กœ์ €์— ์†ํ•˜๋ฏ€๋กœ ํ•ด๋‹น ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๋ฉด ํ›„์† ํ˜ธ์ถœ์— ์˜ํ–ฅ์„ ์ค๋‹ˆ๋‹ค.

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

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

Example.cs:

// PROJECT-EXAMPLE
System.Func<int, int> twice = value => value * 2;
System.Console.WriteLine(twice(4));

๊ฒฐ๊ณผ:

8
Func<int, int, int> add = (left, right) => left + right;
Action<string> report = text => UO.Print(text);
report($"Total={add(2, 3)}");
int count = 0;
Action next = () => count++;
next();
next();
UO.Print($"Count={count}");

๋ฉ”์„œ๋“œ์˜ ์‹œ๊ทธ๋‹ˆ์ฒ˜๊ฐ€ ๋Œ€๋ฆฌ์ž์™€ ์ผ์น˜ํ•˜๋ฉด ๋ฉ”์„œ๋“œ๋ฅผ ๋ฉ”์„œ๋“œ ๊ทธ๋ฃน์œผ๋กœ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. static-lambda๋Š” ๋กœ์ปฌ ์ปจํ…์ŠคํŠธ๋ฅผ ์บก์ฒ˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ž‘์—… ๋ฐ˜ํ™˜ ๋žŒ๋‹ค์˜ ๊ฒฝ์šฐ Func<Task> ๋˜๋Š” Func<T,Task>๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์ž‘์—…์„ ๊ธฐ๋‹ค๋ฆฝ๋‹ˆ๋‹ค. async void๋Š” void๋ฅผ ์š”๊ตฌํ•˜๋Š” ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ์—๊ฒŒ ๋งก๊ฒจ์ง‘๋‹ˆ๋‹ค.

๊ณต์‹ ๋ฌธ์„œ: ๋Œ€๋ฆฌ์ž, ๋žŒ๋‹ค ๋ฐ ํด๋กœ์ € - Microsoft Learn.

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