이벤트를 공부하기 위해 대리자부터 학습을 하고 있는데 식 트리라는 개념이 있어서 정리.
식 트리란?
C#에서 람다 표현식(식 람다만)의 구조와 실행 로직을 데이터 구조로 표현한 것이다.
식트리를 사용하면 람다 표현식의 구성 요소인 연산자, 변수, 상수를 노드로 가지는 트리 구조로
람다 표현식을 나타낼 수 있다.
이를 통해 표현식을 분석, 수정하고 다른 질의 언어처럼 사용할 수 있다.
// 식트리 생성.
// (a, b) => a + b;는 람다식
Expression<Func<int, int, int>> addExpression = (a, b) => a + b;
// 식 트리의 본체를 조사
BinaryExpression body = (BinaryExpression)addExpression.Body;
// 식 트리의 연산자와 매개변수 정보 출력
Console.WriteLine($"Operation: {body.NodeType}, Left: {body.Left}, Right: {body.Right}");
// 식 트리 컴파일
// 식 트리를 컴파일하여 실행 가능한 델리게이트로 변환하고, 이를 사용하여 실제 연산을 수행
Func<int, int, int> addFunc = addExpression.Compile();
// 컴파일된 함수 실행
int result = addFunc(10, 20);
Console.WriteLine($"Result: {result}"); // 출력: Result: 30
추후에 더 자세하게 정리하는 걸로..