目前,C#中的泛型不允许任何理智的方式来执行算术.有一些尴尬的解决方法,但它们都不是很整洁,所有这些都会降低性能.根据这次访谈,不可能实现具有算术类型的接口,因此提出了一种这样的解决方法.
但你可以做的是让你的矩阵作为计算器的参数,并在计算器中,有一个名为multiply的方法.你去实现它并将它传递给Matrix.
为什么我必须告诉高级编程语言如何添加和乘以数字? [由于受欢迎的需求而编辑]
为什么不简单地允许将Generic限制为类型列表?
例如.
class Matrix<T> where T : int,long,float,double
Run Code Online (Sandbox Code Playgroud)
语法当然可以是不同的.但是编译器只需要检查类型是否在列表中,并且所使用的运算符适用于所有类型,这应该比显然太难的接口建议简单得多.
是否有任何明显的原因导致无法实施?