C# 프로그래밍

[C#] 문 형식의 람다식

같은편 2023. 3. 6. 12:47

2023.02.28 - [C# 프로그래밍] - [C#] 익명 메소드와 람다식

 

[C#] 익명 메소드와 람다식

2023.02.27 - [C# 프로그래밍] - [C#] 대리자(Delegate) [C#] 대리자(Delegate) C#에서 대리자는 콜백(Callback)을 구현하기 위해 사용됩니다. 콜백이란 어떤 일을 해줄 코드를 만들고, 이 코드가 실행할 이벤트

onesside-world.tistory.com

 

이전 글에서 예시로 들었던 코드가 있습니다.

BubbleSort(array, delegate(int a, int b)
                              {
                                if (a > b)
                                    return 1;
                                else if (a == b)
                                    return 0;
                                else
                                    return -1;
                              });

바로 이것입니다.

그런데 저는 이 것을 람다식으로

BubbleSort(array, (a, b) => a.CompareTo(b));

식 형식의 람다식으로 바꿧습니다.

 

그런데 여기서 의문과 불편한점이 생깁니다. ComparTo함수를 모르는데 그냥 위의 코드로 코드를 만들면 안되나?

 

됩니다!

BubbleSort(array, (a, b) => {
                                if (a > b)
                                    return 1;
                                else if (a == b)
                                    return 0;
                                else
                                    return -1;
                              });

이렇게 문 형식의 람다식으로 바꿧습니다.

문 형식의 람다식은 => 연산자의 오른편에 식 대신 {와 }로 둘러싸인 코드 블록이 위치합니다.

 

반환 형식이 없는 무명 함수

무슨 뜻이냐면 코드 먼저 보겠습니다.

delegate void Statement();

static void Main(string[] args)
    {
        Statement Lambda = ( ) =>
            {
                Console.WriteLine("문");
                Console.WriteLine(" 형식의 ");
                Console.WriteLine("람다식");
            };
            
        Lambda();
    };

당연한 이야기지만, 매개변수가 업슨 경우에는 ()에 아무것도 넣지 않습니다.