람다식(Lambda Expression)

00·2024년 12월 25일

C#

목록 보기
80/149
using System;


/*
람다식(Lambda Expression):
익명 메서드를 만들기 위해 사용.
람다식으로 만든 익명 메서드는 무명 함수(Anonymous Function)라고 부름.
대리자보다 익명 메서드를 더욱 간결하게 작성할 수 있는 기능.
 */


namespace SimpleLambda
{
    class MainApp
    {
        delegate int Calculate(int a, int b); // 익명 메서드를 만들려면 우선 대리자가 필요함.
                                              // 따라서 Calculate라는 이름의 델리게이트를 선언합니다.
                                              // 이 델리게이트는 두 개의 정수를 매개변수로 받아
                                              // 정수 값을 반환하는 메서드를 참조할 수 있습니다.

        static void Main(string[] args)
        {
            Calculate calc = (a, b) => a + b; // calc라는 Calculate 델리게이트 변수를 선언하고,
                                              // 람다 식 (a, b) => a + b를 사용하여 초기화합니다.
                                              // 람다 식은 (a, b)라는 매개변수 목록과
                                              // a + b라는 식으로 구성됩니다. 
                                              // 이 람다 식은 두 개의 정수를 더하는 기능을 수행합니다.

            Console.WriteLine($"{3} + {4} : {calc(3, 4)}"); // calc(3,4): calc 델리게이트를 호출하여,
                                                            // 3과 4를 더한 결과 반환합니다.
        }
    }
}


/*
출력 결과

3 + 4 : 7
*/

코드 설명

이 C# 코드는 람다 식을 사용하여 델리게이트를 간결하게 표현하는 방법을 보여주는 예제입니다. 람다 식은 익명 메서드를 더욱 간결하게 작성할 수 있는 기능입니다.

Calculate 델리게이트

delegate int Calculate(int a, int b);
  • Calculate라는 이름의 델리게이트를 선언합니다. 이 델리게이트는 두 개의 정수를 매개변수로 받아 정수 값을 반환하는 메서드를 참조할 수 있습니다.

Main 메서드

Calculate calc = (a, b) => a + b;  // 람다 식을 사용하여 델리게이트를 초기화합니다.

Console.WriteLine($"{3} + {4} : {calc(3, 4)}");  // 델리게이트를 호출하여 결과를 출력합니다.
  • Calculate calc = (a, b) => a + b;: calc라는 Calculate 델리게이트 변수를 선언하고, 람다 식 (a, b) => a + b를 사용하여 초기화합니다. 람다 식은 (a, b)라는 매개변수 목록과 a + b라는 식으로 구성됩니다. 이 람다 식은 두 개의 정수를 더하는 기능을 수행합니다.
  • Console.WriteLine($"{3} + {4} : {calc(3, 4)}");: calc 델리게이트를 호출하여 3과 4를 더한 결과를 출력합니다. calc(3, 4)(a, b) => a + b 람다 식에 3과 4를 전달하여 실행하는 것과 같습니다.

람다 식의 장점

  • 코드를 간결하게 작성할 수 있습니다.
  • 익명 메서드보다 더욱 간결하게 표현할 수 있습니다.
  • 델리게이트를 사용하는 코드의 가독성을 높일 수 있습니다.

출력 결과

3 + 4 : 7

0개의 댓글