Бинарный оператор Multiply не определен для типов 'System.Int32' и 'System .Double '.

Почему следующий код генерирует исключение во время выполнения, тогда как при традиционном выполнении компиляции без проблем?

var left = Expression.Constant(25d);
var right = Expression.Constant(20);

// Throws an InvalidOperationException!
var multiplyExpression = Expression.Multiply(left, right); 

var multiply = 25d * 20;
Debug.WriteLine(multiply.ToString()); // Works normally!

Я не буду использовать Expression.Convert , поскольку могу ' t точно определить, какое выражение следует преобразовать.

10
задан FishBasketGordo 30 July 2011 в 15:41
поделиться