title: The binary operator Multiply is not defined for the types 'System.Int32' and 'System.Double'.
body: <p>Why the following code throws an exception at runtime, whereas doing it in the traditional way compiles without problem?</p>
  
  <pre><code>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!
  </code></pre>
  
  <p>I won't use <code>Expression.Convert</code> since I can't determine exactly which expression should be converted.</p>