본문 바로가기

Programming/C#

람다 표현식

728x90

예제1

기본 코드 : 매개변수 1개

Action<string> action = delegate(string message)
{
    Console.WriteLine($"메시지: {message}");
};

 

1. delegate 글자 지우고 => 를 소괄호 뒤에 추가

 

Action<string> action = (string message) =>
{
    Console.WriteLine($"메시지: {message}");
};

 

2. 표현식 하나만 있을 경우 return, 중괄호 생략 가능

Action<string> action = (string message) => Console.WriteLine($"메시지: {message}");

 

3. 매개변수 타입을 추론할 수 있으므로 생략

Action<string> action = (message) => Console.WriteLine($"메시지: {message}");

 

4. 매개변수 타입을 추론할 수 있고 매개변수가 하나면 소괄호도 생략

Action<string> action = message => Console.WriteLine($"메시지: {message}");

 

예제2

기본 코드 : 매개변수 2개

Func<int, int, int> multiply = delegate(int x, int y){
    return x * y;
};

 

1. delegate 글자 지우고 => 를 소괄호 뒤에 추가

Func<int, int, int> multiply = (int x, int y) => {
    return x * y;
};

 

2. 표현식 하나만 있을 경우 return, 중괄호 생략 가능

Func<int, int, int> multiply = (int x, int y) => x * y;

 

3. 매개변수 타입을 추론할 수 있으므로 생략

Func<int, int, int> multiply = (x, y) => x * y;

 

4. 매개변수가 하나가 아니라서 소괄호는 생략 불가

 

예제3

기본 코드 : 매개변수가 없음

Random ran = new Random();
Func<int> create = delegate()
{
    return ran.Next(45) + 1;
};

 

1. delegate 글자 지우고 => 를 소괄호 뒤에 추가

Func<int> create = () =>
{
    return ran.Next(45) + 1;
};

 

2. 표현식 하나만 있을 경우 return, 중괄호 생략 가능

Func<int> create = () => ran.Next(45) + 1;

 

3. 매개변수가 없어서

 

 

 

한 줄 요약: deletegate를 => 로 변경하고 return, {}, 매개변수 타입, 매개변수 괄호 생략

 

728x90