람다 식(Lambda Expression)은 C#에서 무명 메서드를 정의하는 간결한 문법이다. 주로 짧은 코드 블록을 매개변수로 전달할 때 사용된다.
람다 식은 간결하고 읽기 쉬우며, 주로 단순한 연산이나 로직을 빠르게 표현할 때 사용된다. 하지만 복잡한 로직이나 여러 줄의 코드가 필요한 경우에는 일반적인 메서드를 사용하는 것이 더 적절하다.
(parameters) => expression-or-statement-block
Func<int, int> square = x => x * x;
int result = square(5); // 결과는 25
Action<string> greet = name =>
{
string greeting = "Hello, " + name;
Console.WriteLine(greeting);
};
greet("John"); // 출력은 "Hello, John"
Func<int, int, int> add = (a, b) => a + b;
int sum = add(3, 4); // 결과는 7
Func<int, int> square = (int x) => x * x;
C++ 람다와 C#의 람다는 많은 부분이 다르지만 C++의 [&] 람다는 외부 변수를 참조로 캡쳐할 수 있다는 점, 해당 변수가 변경되면 람다 내에서도 반영된다는 점에서 비슷하다. 하지만 사용 방식이 유사하더라도 차이점이 존재하며, 언어적 특성과 내부 구현 또한 다르므로 주의해야한다.