我正在创建一个自定义矩阵类,它只有一个 2D 数组来保存所有内容(我知道 1D 数组更快更好,但这不是这个实现的重点)问题是,我想要一个构造函数,并且能够做类似的事情
Matrix a = new Matrix(2,2){{1,2},{3,4}};
并解决所有问题。我遇到了“'Matrix'不包含'Add'的定义并且没有扩展方法'Add'等。” 但是环顾四周后,我还没有找到足够可靠的信息来说明如何定义 Add() 方法以使其工作。这是我到目前为止的代码
public class Matrix : IEnumerable
{
/* What we know abuot matricies
* - matricies are defined by rows, cols
* - addition is element-wise
*/
public IEnumerator GetEnumerator()
{
yield return m;
}
private void Add(double a)
{
// what exactly should go here anyway?
}
private double[,] m;
public double this[int rows, int cols]
{
get => m[rows, cols];
set => m[rows, cols] = value;
}
public Matrix(int rows, int cols)
{
m = new double[rows, cols];
}
...
}
那么,无论如何我将如何执行 Add() 方法?