프로그래밍 언어/C#
익명 메서드와 람다식
야식은진리다
2020. 5. 6. 00:05
익명 메서드
익명 메서드는 이름이 없는 메서드이다. 이름이 없기때문에 기본적으로 대리자에 참조시키기 위한 용도로 자주 쓰인다.
만일 아래와 같은 대리자가 있다면,
1
|
delegate int Calculate (int a, int b);
|
대리자는 delagate 키워드를 이용해서 선언한다. 대입할 대리자의 형식과 동일한 형식으로 선언되어야한다.
1
2
3
4
|
Calculate cal = delegate (int a, int b)
{
return a+b;
}
|
위 코드처럼 사용하고, 이후 cal(1,2);를 호출하면 3이 반환된다.
람다식
람다식은 익명메서드를 만드는 하나의 방법이다. 다만 람다식으로 만드는 익명 메서드는 무명함수라는 이름으로 불린다.
기본적인 람다식(식 형식)을 선언하는 형식은 다음과 같다.
1
|
(매개변수목록) => 식;
|
=> 연산자는 "입력" 연산자로써 매개변수를 전달하는 역할을 한다. 그래서 람다식은 =>를 중심으로 왼쪽에는 매개변수가, 오른편에는 식이 위치한다.
문 형식의 람다식은 => 연산자의 오른편에 식 대신 {와}로 둘러싸인 코드 블럭이 위치하는 람다식으로써 다음과 같이 선언한다.
1
2
3
|
(매개변수목록) => {
//...
}
|
Func와 Action
람다식과 익명 메서드를 사용할때는 대리자가 필요하다. 이것이 번거로운 작업이므로 .NET 프레임워크에 Func와 Action대리자가 미리 선언 되어있다. Func는 결과를 반환하는 메서드를 참조하고, Action는 결과를 반환하지 않는 메서드를 참조한다.