본문 바로가기
프로그래밍/C#

C# 람다(Lambda)에 대해서

by bantomak 2023. 3. 20.

람다(Lambda)란?

람다는 무명 메서드(annoymous method)와 비슷하게 무명 함수를 정의하기 위해서 사용된다.

 

람다는 두 가지 형태 중 하나의 형태를 가진다.
 
람다식 (Lambda Expression)
 

(parameters) => expression  // 람다식으로 작성시 return 문을 생략할 수 있습니다.

 
람다문 (Lambda Statement)
 

(parameters) => { statements; } // 람다문으로 작성시에는 return 문을 생략할 수 없습니다.

 
 
=> 는 람다 연산자라고 불립니다.
 

Func<T, TResult> lambda = parameter => expression;

파라미터가 하나라면 () 괄호를 생략할 수 있습니다.
 

(p1, p2, p3) => expression;

파라미터가 여러개라면 () 괄호로 감싸고 콤마(,)로 구분해줘야 합니다.
 

클로져(Closure)란?

람다식 외부의 변수를 캡처해서 사용하는 람다를 클로져라고 부릅니다.
 

int factor = 10;

var multiplier = (int x) => x * factor;

var result = multiplier(10);

Console.WriteLine(result); // 100

 
정적 람다식 (Static Lambda Expression)
 
C# 9.0에서 추가된 정적 람다식은 외부 변수를 캡처하지 않는다는 걸 보장합니다.
 

int factor = 2;
var square = static (int x) => x * factor; // ERROR

var result = square(10);
Console.WriteLine(result); // 100

 
람다식 외부의 변수를 사용하려고 하면 컴파일러가 에러를 반환합니다.
 

함께 읽으면 좋은 글

 

C# 무명 메서드(Anonymous Method)

무명 메서드(Anonymous method) C# 2.0에서부터 메서드를 미리 정의하지 않아도 되는 메서드명이 없는 무명 메서드(혹은 익명 메서드, Anonymous Method)를 지원하게 되었다. 만약 어떤 메서드가 일회용으로

jettstream.tistory.com

 

참고 사이트

 

C# Lambda Expressions

In this tutorial, you'll learn about C# lambda expressions and how to use them to define anonymous functions.

www.csharptutorial.net

댓글