많은 예제로 작업을 시작한 동적 linq 표현식을 작성해야합니다. 나는 약간과 약간의 일을 시험했고, 그렇지 않은 것을 시험했다.반환 값이있는 동적 Linq 표현
레이블로 점프 할 수 없습니다
LabelTarget returnTarget = Expression.Label("label"); ParameterExpression para = Expression.Parameter(typeof(int), "intvalue"); Expression test = Expression.GreaterThan(para, Expression.Constant(5)); Expression iftrue = Expression.Return(returnTarget, Expression.Constant(true)); Expression iffalse = Expression.Return(returnTarget, Expression.Constant(false)); Expression.IfThenElse(test, iftrue, iffalse); this.TheExpression = Expression.IfThenElse(test, iftrue, iffalse); Expression.Lambda<Action<int>>( this.TheExpression, new ParameterExpression[] { para } ).Compile()(5);
을 지금은
InvalidOperationException
예외 :public bool Check(int intvar) { if (i > 2) return true; else return false; }
지금은 다음과 같은 것이 작성한이 경우 내가처럼 보이는 방법을 만들려면 "label"`
무엇이 잘못 되었나요? 나는 진실하거나 틀린 반환 만하면된다.
당신은 우리에게 당신이 달성하려고하는 일에 대해 좀 더 말씀해 주시겠습니까? 예를 들어, 왜이 표현식을 동적으로 생성해야합니까? 왜 쓸 수있을 때 레이블 및 if \ else를 사용해야합니까? public bool Check (int intvar) { return i> 2; } –