나는 식 트리로C#으로 BinaryExpression을 함께 붙어
Expression<Func<int, int, int>> Max = (p1,p2) => p1 > p2 ? p1:p2;
을 구현하려는 및 COND 내가 하나가 참/거짓 얻을 수 있지만 LeftEx 또는 조건이 반환해야 RightEx으로
ParameterExpression LeftEx = Expression.Parameter(typeof(int), "p1");
ParameterExpression RightEx = Expression.Parameter(typeof(int), "p2");
BinaryExpression GroesserAls = Expression.GreaterThan(LeftEx, RightEx);
ConditionalExpression Cond = BinaryExpression.Condition(GroesserAls, LeftEx, RightEx);
Expression main = Cond.Test;
Expression<Func<int, int, bool>> Lam = Expression.Lambda<Func<int, int, bool>>(main,
new ParameterExpression[] { LeftEx, RightEx });
Console.WriteLine(Lam.Compile().Invoke(333, 1200));
시도 .
설명서에서 아무것도 찾을 수 없습니다.
피터
잊지 마세요 , 당신은 항상 반사경 ILDASM을 사용할 수 있습니다
편집 - - BTW
var
여기에 당신의 친구입니다 컴파일러에서 생성 한 표현식 트리 코드를 확인하십시오. –