C#/C#_기초강의

(C#) 람다식(Lambda expression), 화살표 연산자(=>) 기초

코딩ABC 2023. 4. 23. 07:17
반응형

람다식에 대해 알아봅니다.

람다식의 일반 구문은 다음과 같습니다.

람다 식
member => expression;

 

예제 1

람다식(=>)을 이용해서 메서드를 간단하게 표현할 수 있습니다.

    internal class Program
    {
        static void Hi()
        {
            Console.WriteLine("안녕하세요!");
        }
        static void Main(string[] args)
        {
            Hi();
        }
    }

 

위 코드를 람다식을 이용해서 다음과 같이 표현할 수 있습니다.

    internal class Program
    {
        static void Hi() => Console.WriteLine("안녕하세요!");

        static void Main(string[] args)
        {
            Hi();
        }
    }

람다식, 화살표 연산자

 

 

예제 2

매개변수를 갖는 람다식을 작성해 보겠습니다.

다음 코드는 두 개의 정수(int)값을 반환하는 Add 메서드입니다.

    internal class Program
    {
        static int Add(int x, int y)
        {
            return x + y;
        }

        static void Main(string[] args)
        {
            int a = 10, b = 20;
            Console.WriteLine("{0} + {1} = {2}", a, b, Add(a, b));
        }
    }

 

위 코드를 람다식으로 다시 작성해보겠습니다.

    internal class Program
    {
        static int Add(int x, int y) => x + y;
        static void Main(string[] args)
        {
            int a = 10, b = 20;
            Console.WriteLine("{0} + {1} = {2}", a, b, Add(a, b));
        }
    }

매개변수가 있는 람다식

 

 

 

 

익명(무명) 람다식

델리게이트(delegate)와 람다식을 이용해서 익명의(이름이 없는) 메서드를 호출할 수 있습니다.

 

예제 3

    internal class Program
    {
        delegate int Calc(int a, int b);

        static void Main(string[] args)
        {
            Calc c = (a, b) => a + b;
            Console.WriteLine(c(10, 20));
        }
    }

 

델리게이트는 메서드를 대신 호출할 수 있는 기능으로 아래와 같이 사용하는 것이 기본이지만, 위 코드에서는 델리게이트 c에 메서드 이름을 할당하지 않고 람다식을 할당해서 사용하는 것을 보여주고 있습니다.

델리게이트(delegate)
델리게이트 = 메서드이름;

 

 

반응형