2010-11-07 84 views
2

我正在写一个RationalNumber类在C#中,并希望使它通用,但只允许整数(INT,字节,UInt32,我自己的BigInt类...)作为输入 - 它基于浮动或像Control这样的常规对象有理性的数字是没有意义的。通用只允许整数作为类型参数

但是,在声明类时似乎并没有滤除非整数类型。

我忽略了什么?

回答

2

不,你不能。

而且还有另外一个问题,即没有arithmetic约束。所以没有静态类型的方法来使用你的类型参数的操作符。所以你需要使用动态的更慢(除非他们自.NET 3.5以来改进了运行时间/抖动)。

一些具有类似问题的项目根本没有使类具有通用性,而是使用代码生成器来改为专用类。