昨日から式ツリーを独学で学んでいますが、2 つの文字列値の比較に問題があります。エラーで失敗するこのテスト ケースを作成しました。
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
. これが Compare メソッドの理由です。
私はそれが単純なものであると確信しており、コードをこの単純なテスト ケースに煮詰めました。私がどこを間違えたのか、誰にもわかりますか?