繁体   English   中英

C# - 是否有数学接口?

[英]C# - Is there an interface for math?

我正在研究一个矩阵类,我想在其中制作一些线性代数函数。 我想在矩阵中有一个通用类型,你可以用它进行算术运算,因为我想制作一个 class 代表分数而不是使用双精度,但我也想在未来使用双精度。 像这样:

class Temp<T>
    {
        T[,] matrix;
        // Example of a math-using function
        public T Sum()
        {
            T sum = matrix[0,0];
            for(int i = 0; i < matrix.GetLength(0); i++)
            {
                for(int j = 0; j < matrix.GetLength(1); j++)
                {
                    sum += matrix[i, j]; // Error here
                }
            }
            return sum;
        }
    }

我以为我可以使用类似where T: IMathable东西,但我无法弄清楚它应该有什么 inheirentents。

你试过文件了吗?

有一个 Math class,你可以看看是不是你想要的Math Class

你导入它

using System;

请给我一个反馈。 如果这个没有解决,请尝试更具体一些,提及具有您想要的 function 的语言可以帮助我们帮助您。

是的,在 .NET 7 / C# 11:

class Temp<T> where T : INumber<T>
{
    T[,] matrix;
    public T Sum()
    {
        T sum = matrix[0, 0];
        for (int i = 0; i < matrix.GetLength(0); i++)
        {
            for (int j = 0; j < matrix.GetLength(1); j++)
            {
                sum += matrix[i, j];
            }
        }
        return sum;
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM