【发布时间】:2011-07-06 21:47:34
【问题描述】:
可能的重复:
C# generic constraint for only integers
Generics - where T is a number?
在 C# 中:
想象一个例子,我们有一个泛型类型的功能,在这种情况下,我们的泛型类型在概念上仅限于数字。
通过说“数字”,我们旨在能够对 T 类型的变量使用乘法、加法、减法等运算符。
不幸的是,c# 不接受这样的事情:
public class Image<T> where T : number
请注意,性能也很重要,因此我们不想为数字类型重新定义结构并使用它们。
您认为最好的方法是什么?或者是否有任何设计模式允许我们对泛型类型的变量拥有“高性能”算术函数?
【问题讨论】:
-
它不存在。 .net IMO 的最大缺陷之一。可以使用
MiscUtil的操作符类,但是速度比较慢。一些 C# 数字项目使用代码生成器为常见数字类型创建代码版本。 [[杰夫头像]]
标签: c# generics constraints