我正在处理一个动态构建lambda表达式的项目。 在的具体方案中,我动态构造它等于这一个的表达式:二元运算符添加没有为'System.Byte'和'System.Byte'类型定义
字节I = 1;
字节j = 1;
var firstConstant = Expression.Constant(i);
var secondConstant = Expression.Constant(j);
var lambda = Expression.Lambda(Expression.Add(firstConstant,secondConstant));
lambda.Compile()。DynamicInvoke();
我知道原始类型没有运算符重载,编译器实际上在添加之前将变量/常量转换为int,结果返回到字节,因此我不会引发异常。 我的问题是,如果我需要处理浮点类型,在不知道类型和不丢失一些数据的情况下执行add操作的逻辑是什么?
我也注意到,与其他类型其实际工作 - 两个常量的短。 – Sagi