Table of Contents
C# – 람다식(Lambda expression)
익명 함수(anonymous function) 인 람다식을 이용해 코드를 간소화 할 수 있습니다.
코드 간소화
아래 코드는 람다식을 이용해 간소화할 수 있습니다.
static int DoubleFunc(int num)
{
return num * 2;
}
static void Main(string[] args)
{
Console.WriteLine(DoubleFunc(10));
}
static void Main(string[] args)
{
Func<int, int> DoubleFunc = (num) => num * 2;
Console.WriteLine(DoubleFunc(10));
}
제네릭 대리자
마치 C, C++ 의 함수 포인터와 유사하게 작동합니다.
파라미터가 하나면 리턴 타입이 되고, 2개 이상이면 가장 마지막 타입이 리턴 타입이고, 나머지가 입력 타입이 됩니다.
+=
, -=
를 이용해 하나의 함수 변수에 여러개의 함수를 넣거나 뺄 수도 있습니다.
static int F1(int i)
{
Console.WriteLine($"i == {i}");
return i;
}
static int F2(int i)
{
Console.WriteLine($"i == {i * 2}");
return i * 2;
}
FuncMethod2 = F1;
int i = FuncMethod2(10);
Console.WriteLine($"i == {i}");
FuncMethod2 += F2;
i = FuncMethod2(100);
Console.WriteLine($"i == {i}");
// output
// i == 10
// i == 10
// i == 100
// i == 200
// i == 200