Statement Lambda(문 형식의 람다식)

00·2024년 12월 26일

C#

목록 보기
81/149
using System;


/*
Statement Lambda(문 형식의 람다식):
여러 문장으로 구성된 코드 블록을 델리게이트에 할당할 수 있도록 합니다.
반환 형식이 없는 무명 함수를 만들 수 있습니다.
<-> 식 형식의 람다식: 반환 형식이 없는 무명 함수를 만들 수 없음.
 */


// 문장을 입력하면 스페이스를 모두 지우는 프로그램
namespace StatementLambda
{
    class MainApp
    {
        delegate string Concatenate(string[] args); // Concatenate라는 이름의 델리게이트를 선언합니다.
                                                    // 이 델리게이트는 문자열 배열을 매개변수로 받아 
                                                    // 문자열 값을 반환하는 메서드를 참조할 수 있습니다.

        static void Main(string[] args)
        {

            // Concatenate concat = (arr) => { ... };:
            // concat라는 Concatenate 델리게이트 변수를 선언하고, 문 형식({})의 람다 식을 사용하여 초기화합니다. 
            // 람다 식은 arr 라는 매개변수 목록과 {} 안에 여러 문장으로 구성된 코드 블록으로 구성됩니다.
            Concatenate concat = (arr) =>
                {
                    string result = "";
                    foreach (string s in arr)
                        result += s;

                    return result;
                };

               Console.WriteLine(concat(args)); // concat 델리게이트를 호출하여,
                                                // args 배열을 연결한 결과를 출력합니다.
            
        }
    }
}

코드 설명

이 C# 코드는 문 형식의 람다 식을 사용하여 문자열 배열을 연결하는 방법을 보여줍니다. 문 형식의 람다 식은 여러 문장으로 구성된 코드 블록을 델리게이트에 할당할 수 있도록 합니다.

Concatenate 델리게이트

delegate string Concatenate(string[] args);
  • Concatenate라는 이름의 델리게이트를 선언합니다. 이 델리게이트는 문자열 배열을 매개변수로 받아 문자열 값을 반환하는 메서드를 참조할 수 있습니다.

Main 메서드

Concatenate concat =
    (arr) =>
    {
        string result = "";
        foreach (string s in arr)
            result += s;

        return result;
    };

Console.WriteLine(concat(args));
  • Concatenate concat = (arr) => { ... };: concat라는 Concatenate 델리게이트 변수를 선언하고, 문 형식의 람다 식을 사용하여 초기화합니다. 람다 식은 (arr)라는 매개변수 목록과 {} 안에 여러 문장으로 구성된 코드 블록으로 구성됩니다. 이 람다 식은 문자열 배열을 연결하는 기능을 수행합니다.
  • Console.WriteLine(concat(args));: concat 델리게이트를 호출하여 args 배열을 연결한 결과를 출력합니다.

문 형식의 람다 식

  • {} 안에 여러 문장으로 구성된 코드 블록을 사용할 수 있습니다.
  • return 문을 사용하여 값을 반환할 수 있습니다.

출력 결과

실행 결과는 args 배열에 어떤 값이 전달되는지에 따라 달라집니다. 예를 들어, 프로그램 실행 시 명령줄 인수로 "Hello"와 "World"를 전달하면 다음과 같이 출력됩니다.

HelloWorld

0개의 댓글