我正在一个小型教育项目中工作,我们必须实现一个n维矩阵.根据上下文,此矩阵可以使用我们自己的内置ComplexNumber结构,System.Double也可以使用非常简单的示例,使用整数类型(主要是System.Int32).
由于应用程序的性质,我们不需要实现闪电般快速的性能.
因此,我的第一个想法是实行Matrix<T>地方T会以某种方式需要被限制在"数字".
这样做的一个明显问题是,语言中没有办法T用定义的运算符约束泛型类型.此外,我没有看到一种简单的方法来重新T合理到合理的类型.
我的问题是:
有人可以指出我的优雅方式,使用通用类型进行数学运算,不会过多地影响性能,并以某种方式使内置类型工作(如果可能).
如果Eric读过这篇文章,那么这个功能(通过定义的运算符约束泛型类型)是否会出现在C#设计会议的假设未来版本中,并且它是否已经接近将其纳入语言?
我知道实现一个ComplexMatrix类型并为每个矩阵"子类型"(双重,整数等)创建包装器更容易,更好,并支付我们的复杂类型和矩阵元素发生的任何类型之间的转换的性能成本成为.这个问题更多的是出于对某人如何实施类似场景的好奇心.