[C# 기초강의] Ch 14. 람다식

728x90

 

https://www.youtube.com/watch?v=4TNW8qm5Mks&list=PLVsNizTWUw7GN8wPRhclbKuQa9aI9Cj2V&index=15

 

 

📌 람다식

◾ 람다식의 개념

  • 식람다 혹은 문 형식의 람다로 이루어진 식
//식람다
(매개변수 목록) => 식

//문 형식의 람다
(매개변수 목록) =>
{
	문장1;
    문장2;
    ...
    문장N;
}

 

◾ 람다식으로 무명함수 정의하기

  • 무명함수 : 람다식으로 만드는 익명메서드
  • 무명함수를 작성하기 위해서는 먼저 대리자로 무명함수의 모습을 결정

 

◾ 문 형식의 람다식

  • 람다식의 바디를 식이 아닌 코드 블록으로 작성
delegate void DoSomething();

static void Main(string[] args)
{
	DoSomething DoIt = () =>
    {
    	Console.WriteLine("어쩌구");
        Console.WriteLine("저쩌구");
    };
    
    Doit();
}

 

◾ Func 대리자와 Action 대리자

-.NET 라이브러리에 사전정이 되어있음

  • 익명 메서드/무명함수 정의를 위해 매번 대리자를 새롭게 정의하지 않아도 됨
  • 일반화와 최대 16개 매개변수 지원
  • Func대리자 : 반환 값이 있는 익명메서드/무명함수용 대리자
  • Action 대리자 : 반환 값이 없는 익명메서드/무명함수용 대리자

 

◾ 식 트리

  • 코드를 트리 자료 구조로 표현한 것
  • C#에서는 런타임에 식트리를 생성하고 실행할 수 있음
    프로그램 실행 중 추가 코드 생성 및 실행 가능
  • LINQ, DLR에서 사용됨
  • 식트리 구축에 주로 람다식 사용 (API도 사용 가능)

 

◾ 식 트리 구조

  • 트리는 노드로 구성
  • 식 트리는 한 부모 노드가 단 두개만의 자식노드를 가질 수 있는 이진트리이다.
    연산자 : 부모노드
    피 연산자 : 자식노드
    잎 노드부터 루트 노드까지 계산해 나가면 전체 식의 결과가 도출 됨.
  • 식트리를 이용하여 동적으로 1+X 무명함수 생성 및 실행
728x90