C#/이것이 C#이다
[C# 기초강의] Ch 14. 람다식
냠냠쿠
2023. 8. 10. 12:55
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