C#

C# 람다 식 : 캡처

코샵 2023. 10. 20. 14:10
반응형

C#에서 람다 식은 일회성으로 사용되는 함수를 나타내는 간단한 표현입니다. 람다 식은 다음과 같은 형태로 사용됩니다.

(매개변수) => {

    // ...

    // ...

    // ...

    return 결과;

}

람다 식의 장점

람다 식은 다음과 같은 장점이 있습니다.

  • 코드를 간결하게 작성할 수 있습니다.
  • 코드의 가독성을 높일 수 있습니다.
  • 코드의 재사용성을 높일 수 있습니다.

람다 식의 사용 예

람다 식은 다음과 같은 곳에서 사용할 수 있습니다.

  • Action, Predicate, Func 형식의 매개변수에 전달할 수 있습니다.
  • LINQ 쿼리에서 사용할 수 있습니다.
  • 익명 메서드로 사용할 수 있습니다.

람다식에서 사용되는 캡처

람다 식에서 사용되는 캡처는 람다 식 내부에서 사용할 외부 변수를 가리키는 참조입니다. 람다 식은 일회성으로 사용되는 함수이기 때문에, 람다 식 내부에서 외부 변수를 사용하려면 캡처를 사용해야 합니다.

람다식에서 사용되는 캡처의 종류

람다식에서 사용되는 캡처는 다음과 같은 종류가 있습니다.

  • 값 캡처: 람다 식 내부에서 외부 변수의 값을 가리키는 참조를 생성합니다.
  • 참조 캡처: 람다 식 내부에서 외부 변수의 참조를 가리키는 참조를 생성합니다.
  • 지역 캡처: 람다 식 내부에서 선언된 지역 변수를 가리키는 참조를 생성합니다.

 

람다식에서 사용되는 캡처의 예

// 값 캡처

int number = 10;



(int x) => {

    // 람다 식 내부에서 외부 변수의 값을 가리키는 참조를 생성합니다.

    int n = number;



    // 람다 식 내부에서 외부 변수의 값을 변경할 수 있습니다.

    number = 20;



    // 람다 식 내부에서 외부 변수의 값을 출력합니다.

    Console.WriteLine(n); // 20

}



// 참조 캡처

List<int> numbers = new List<int>();

numbers.Add(10);



(int x) => {

    // 람다 식 내부에서 외부 변수의 참조를 가리키는 참조를 생성합니다.

    List<int> list = numbers;



    // 람다 식 내부에서 외부 변수의 요소를 추가할 수 있습니다.

    list.Add(20);



    // 람다 식 내부에서 외부 변수의 요소를 출력합니다.

    Console.WriteLine(list[0]); // 10

}



// 지역 캡처

int n = 10;



(int x) => {

    // 람다 식 내부에서 선언된 지역 변수를 가리키는 참조를 생성합니다.

    int local = n;



    // 람다 식 내부에서 지역 변수의 값을 변경할 수 있습니다.

    n = 20;



    // 람다 식 내부에서 지역 변수의 값을 출력합니다.

    Console.WriteLine(local); // 10

}
위 코드는 다음과 같은 결과를 출력합니다.
20
10

 

결론

람다 식은 코드를 간결하고 가독하게 작성할 있는 유용한 기능입니다. 람다식을 사용할 때에는 캡처를 올바르게 사용해야 합니다.