Programming with C#/C# 기초문법
[C# 기초문법] 9. 람다식(Lambda Expression)
laboputer
2015. 1. 29. 21:11
람다식(Lambda Expression)
C#에는 람다식을 지원합니다. 람다식은 익명 메소드(Anonymous Function)를 좀 더 쉽게 만들기 위해 사용합니다.
식(Expression) 형식의 람다식 선언방식은 다음과 같습니다.
(매개변수_목록) => 식
delegate (int a, int b) { return a+b; } |
(int a, int b) => a+b; |
(a,b) => a+b; |
위 세가지 방법은 모두 같은 익명메소드를 의미합니다.
첫번째 델리게이트를 람다식을 이용해 두번째 방식처럼 만들 수 있으며, 세번째 방식은 C#에서 형식 유추 (Type Inference) 기능을 제공하기 때문에 매개변수 형식을 제거할 수 있습니다.
문(Statement) 형식의 람다식의 선언 방식은 다음과 같습니다.
(매개변수_목록) =>
{
//코드
}
람다식 예제를 보겠습니다.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace CsharpStudy { class Program { delegate int Method(int a, int b); static void Main(string[] args) { Method Add= (a, b) => a+b; Console.WriteLine(Add(3, 4)); Method Minus = (a, b) => { Console.WriteLine("{0} - {1} 의 결과는?", a, b); return a - b; }; Console.WriteLine(Minus(5, 3)); } } }
이와 같이 익명 메소드를 만들기 위해 별개의 델리게이트를 선언하는 번거로운 일이 있어서 C# 은 Func 델리게이트와 Action 델리게이트를 지원합니다.
Func 델리게이트는 결과를 반환하는 메소드를 참조하기 위해, Action 델리게이트는 반환형식이 없는 메소드 참조를 위해서 사용합니다.
지금까지 람다식에 대해서 정리해보았습니다.
<참고문헌>
뇌를 자극하는 C# 4.0 프로그래밍 - 박상현 저