C# 泛型仅允许整数作为类型参数

C# 泛型仅允许整数作为类型参数,c#,generics,integer,C#,Generics,Integer,我正在用C#编写一个有理数类,并希望使其通用,但只允许整数(int,byte,UInt32,我自己的BigInt类…)作为输入-使用基于浮点数的有理数甚至是基于控件之类的常规对象是没有意义的 然而,在声明类时,我似乎不能过滤掉非整数类型 我忽略了什么吗?不,你不能 另外还有一个问题,就是没有算术约束。因此,也没有静态类型的方法来使用类型参数的运算符。因此,您需要使用较慢的dynamic(除非他们改进了.NET3.5以来的运行时/抖动) 一些有类似问题的项目根本没有使类泛型化,而是使用代码生成器对

我正在用C#编写一个有理数类,并希望使其通用,但只允许整数(int,byte,UInt32,我自己的BigInt类…)作为输入-使用基于浮点数的有理数甚至是基于控件之类的常规对象是没有意义的

然而,在声明类时,我似乎不能过滤掉非整数类型

我忽略了什么吗?

不,你不能

另外还有一个问题,就是没有
算术约束。因此,也没有静态类型的方法来使用类型参数的运算符。因此,您需要使用较慢的dynamic(除非他们改进了.NET3.5以来的运行时/抖动)

一些有类似问题的项目根本没有使类泛型化,而是使用代码生成器对其进行专门化