次のように、aと an (またはその他の不一致のペア) のExpression.Add
2 つのデータ型を合計 するために使用したいと思います。double
int
var pLeft = Expression.Parameter(typeof(int), "left");
var pRight = Expression.Parameter(typeof(double), "right");
var addition = Expression.Add(pLeft, pRight);
var lambda = Expression.Lambda<Func<int, double, double>>(addition, pLeft, pRight).Compile();
var res = method(1, 0.5);
しかし、私はすぐに次のことを知らされました。
The binary operator Add is not defined for the types 'System.Int32' and 'System.Double'.
考えられるすべての数値のペアに対して演算子が定義されているわけではないことは明らかですが、 の+
ようなものを書くと、ある種の暗黙の変換が行われvar x = 1 + 0.5
ます。式を使用してこの変換をエミュレートする方法、または式を使用してそのような型を合計する方法はありますか?