C# – 람다식(Lambda expression)

By | 2023년 6월 13일
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

답글 남기기