从昨天开始,我一直在自学表达式树,但在比较两个字符串值时遇到了问题。我做了这个测试用例失败并出现错误:
No method 'Compare' on type 'System.String' is compatible with the supplied arguments.
在运行时失败left = Expression.Call(
Type type = typeof(string);
Expression left, right;
left = Expression.Constant("1", type);
right = Expression.Constant("2", type);
// fails at run-time on the next statement
left = Expression.Call(
typeof(string),
"Compare",
new Type[] { type, type },
new Expression[] { left, right });
right = Expression.Constant(0, typeof(int));
我将在Expression.Equal, LessThan, LessThanOrEqual, GreaterThan or GreaterThanOrEqual
. 这就是使用比较方法的原因。
我确信它很简单,我已经将我的代码归结为这个简单的测试用例。有人看到我哪里出错了吗?