【问题标题】:Generic only allowing only integers as type argument泛型只允许整数作为类型参数
【发布时间】:2010-11-07 16:06:09
【问题描述】:

我正在用 C# 编写一个 RationalNumber 类,并希望使其具有通用性,但只允许整数(int、byte、UInt32、我自己的 BigInt 类 ...)作为输入 - 没有任何意义基于浮点数或什至像 Control 这样的常规对象的有理数。

但是,我在声明类时似乎无法过滤掉非整数类型。

我是不是忽略了什么?

【问题讨论】:

标签: c# generics integer


【解决方案1】:

不,你不能。

还有一个额外的问题是也没有arithmetic 约束。因此,也没有静态类型的方式来使用类型参数的运算符。所以你需要使用更慢的动态(除非他们从 .net 3.5 开始改进了运行时/抖动)。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-29
    • 1970-01-01
    • 1970-01-01
    • 2015-04-28
    • 2020-04-11
    • 2021-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多