KO CSharp Delegates Lambdas - LIHACHTETAN/ClassicUO-Bad-Newbie-CSharp-Scripts-IDE GitHub Wiki
ะฃะบัะฐัะฝััะบะฐ ยท ะ ัััะบะธะน ยท English ยท Deutsch ยท Franรงais ยท Italiano ยท Espaรฑol ยท ็น้ซไธญๆ ยท ๆฅๆฌ่ช ยท ํ๊ตญ์ด
๋๋ฆฌ์๋ ํน์ ์๋ช
์ ํธ์ถ๋ ํจ์๋ฅผ ์ ์ฅํฉ๋๋ค. Action๋ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ์ง ์๊ณ , Func๋ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๊ณ , Predicate<T>๋ bool๋ฅผ ๋ฐํํฉ๋๋ค. Lambda๋ arguments => expression ๋๋ ๋ธ๋ก์ผ๋ก ์์ฑ๋ฉ๋๋ค. ์บก์ฒ๋ ๋ณ์๋ ํด๋ก์ ์ ์ํ๋ฏ๋ก ํด๋น ๊ฐ์ ๋ณ๊ฒฝํ๋ฉด ํ์ ํธ์ถ์ ์ํฅ์ ์ค๋๋ค.
์ด ์์ ๋ฅผ 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.