我正在尝试创建一个泛型类,其实现取决于类型是 Int32
、Int64
、double
、float
,或十进制
。
class Calculator<T> where T: int, double, float, decimal
这是不对的,但我在语法上遇到了问题
I am trying to create a generic class whose implementation depends on the type being an Int32, Int64, double, float, or decimal.
那么它就不是通用的。通用类型是一种对所有可能的类型参数都以相同方式工作的类型,例如通用队列或通用字典。
“计算器”类是为此类功能提供的最常见场景;我们一直收到此功能请求。我们假设将其用于尚未公布且不存在的假设 future 版本的 C#。正确执行此功能需要 CLR 的假设 future 版本的大量支持,该版本也尚未公布且不存在。随着这些事情的进行,场景的优先级并不是特别高,所以如果没有实现,请不要失望。
可以通过多种方式显示此类功能。例如,我们可以说您可以将静态方法放在接口(interface)中。数学运算符是静态方法,因此您可以将类型参数约束为实现静态接口(interface) IAddable 或类似东西的类型。
请记住,Eric 对不存在且可能永远不存在的未发布产品的 future 所做的任何思考仅供您娱乐。
我是一名优秀的程序员,十分优秀!