โ ์ต๋ช ๋ฉ์๋ (Anonymous Methods)
์ต๋ช ๋ฉ์๋๋ ์ด๋ฆ์ด ์๋ ๋ฉ์๋๋ก ๋ช ์์ ์ธ ๋ฉ์๋ ์ ์ธ ์์ด ๋ฉ์๋ ๋ธ๋ก์ ์ ๋ฌํ ์ ์๋ ๊ธฐ๋ฅ์ด๋ค. ์ฃผ๋ก ๋ธ๋ฆฌ๊ฒ์ดํธ์ ํจ๊ป ์ฌ์ฉ๋๋๋ฐ, ๋ธ๋ฆฌ๊ฒ์ดํธ ๊ฐ์ฒด๋ฅผ ์์ฑํ ๋ ์ธ๋ผ์ธ์ผ๋ก ๋ฉ์๋๋ฅผ ์ ์ํ ์ ์๊ฒ ํด์ค๋ค.
delegate void Print(string message);
// ์ต๋ช
๋ฉ์๋ ์ ์
Print print = delegate(string msg)
{
Console.WriteLine(msg);
};
print("Hello, World!");
โ ๋๋ค ํํ์ (Lambda Expressions)
๋๋ค ํํ์์ ์ต๋ช ๋ฉ์๋๋ฅผ ๋ ๊ฐ๊ฒฐํ๊ฒ ์์ฑํ ์ ์๋ ๋ฌธ๋ฒ์ด๋ค. ๋๋ค ํํ์์ ํ๋ผ๋ฏธํฐ์ ํํ์์ ํ์ดํ ์ฐ์ฐ์ (=>)๋ก ์ฐ๊ฒฐํ๋ ๋ฐฉ์์ผ๋ก ์์ฑ๋๋ค.
// ๋๋ค ํํ์ ์ฌ์ฉ
Print print = msg => Console.WriteLine(msg);
print("Hello, World!");
โ ๊ณ ๊ธ ๋๋ค ๋ฌธ๋ฒ
๋๋ค ํํ์์ ์ค๊ดํธ๋ก ์ฌ๋ฌ ๋ฌธ์ฅ์ ํฌํจํ ์ ์์ผ๋ฉฐ ์ต๋ช ํ์์ ๋ฐํํ๊ฑฐ๋ ์ฌ์ฉํ ์ ์๋ค.
Func<int, int, int> add = (a, b) =>
{
int result = a + b;
Console.WriteLine($"Adding {a} and {b} gives {result}");
return result;
};
int sum = add(5, 3); // Output: "Adding 5 and 3 gives 8"
โ ํด๋ก์
๋๋ค ํํ์ ๋ด์์ ์ฌ์ฉ๋ ์ธ๋ถ ๋ณ์์ ์ค์ฝํ๊ฐ ์ ์ง๋๋ค. (๋ณ์์ ์ฐธ์กฐ๋ฅผ ์บก์ฒ)
int outerVariable = 10;
Func<int, int> multiplier = x => x * outerVariable;
int result = multiplier(5); // result = 50
outerVariable = 20;
result = multiplier(5); // result = 100
โ LINQ์์ ์ฐ๊ด์ฑ
๋๋ค ํํ์์ LINQ์ ๋ฉ์๋ ์ฒด์ธ์ ์์ฃผ ์ฌ์ฉ๋๋ค.
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
// ๋๋ค ํํ์ ์ฌ์ฉ
var evenNumbers = numbers.Where(n => n % 2 == 0).ToList();
foreach (var num in evenNumbers)
{
Console.WriteLine(num); // Output: 2, 4
}
LINQ ๋ฉ์๋(Where, Select, OrderBy ๋ฑ)๋ ๋๋ถ๋ถ ๋๋ค ํํ์์ ์ธ์๋ก ์ฌ์ฉํ๋ฉฐ, ์ด๋ก ์ธํด ์ฟผ๋ฆฌ ์ฝ๋๋ฅผ ๊ฐ๊ฒฐํ๊ณ ์ง๊ด์ ์ผ๋ก ๋ง๋ค ์ ์๋ค.
'๐ C#' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| ํด๋ก์ (Closure) (0) | 2024.08.29 |
|---|---|
| ์ด๋ฒคํธ(Event), ๋ธ๋ฆฌ๊ฒ์ดํธ(Delegate) (0) | 2024.08.29 |
| ๊ฐ์ฒด ์งํฅ ์ค๊ณ 5๊ฐ์ง ์์น (SOLID) (0) | 2024.08.23 |
| ์์กด์ฑ ์ฃผ์ (Dependency Injection, DI) (0) | 2024.08.20 |
| ๋คํ์ฑ(Polymorphism), ๋ฐํ์ ๋คํ์ฑ, ์ปดํ์ผ ํ์ ๋คํ์ฑ (0) | 2024.08.20 |