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