Опитвах се да разбера как да постигна някои прости математически изчисления с помощта на класа Expression.
Това, което се опитвам да направя, е това
(1 + 10 * 15)
Когато се опитам да направя това чрез Expression.Add и Expression.Constant, но резултатът, който получавам, е този
((1 + 10) * 15)
Което не е правилно, тъй като първо оценява 1 + 10 вместо 10 * 15.
Има ли начин да комбинирате Expression.Add/Multiply и т.н., без да създавате скоби? Предполагам, че има, но просто не мога да намеря къде и как!
Тестовият код, който имам, е този
var v1 = Expression.Constant(1, typeof(int));
var v2 = Expression.Constant(10, typeof(int));
var v3 = Expression.Constant(15, typeof(int));
var a1 = Expression.Add(v1, v2);
var m2 = Expression.Multiply(a1, v3);
Благодаря за отделеното време,
Ричард.