将T解析为int、float、decimal或double来比较计算性能

本文关键字:double 比较 计算性能 decimal float int | 更新日期: 2023-09-27 18:06:32

下面的方法是否可能以某种方式识别出它只能是int、double、decimal或float,并使用+运算符将它们相加?如果我使用动态,那么这是一个问题,因为我希望比较不同类型的添加时间,如果它们被转换为动态,我不知道会有什么效果。谢谢。

    public static void Addition<T>(T number) where T:int, double, decimal, float            
    {
    //calculate elapsed time for operation
     var x=  number + number;// cannot add T + T
    }

将T解析为int、float、decimal或double来比较计算性能

将参数约束为编译时已知的有限类型集合之一的唯一方法是为这些类型中的每个类型创建重载。在本例中,这意味着intdoubledecimalfloat有过载。

没有办法将泛型实参约束为存在该类型的给定操作符重载的实参。