返回对C#中double的引用

本文关键字:引用 double 返回 | 更新日期: 2023-09-27 18:20:59

我是C#的新手,正在尝试实现一个矩阵类。我希望在(I,j)处有一个支持设置和获取数据的函数,即我希望能够将其用于M.at(i,j)=5.0if (M.at(i,j)>3.0)。在C++中,我会这样写:

double& at(i,j) {
   return data[i * cols+ j];
}

同样的函数在C#中会是什么样子?我读过一些主题,比如在C#中返回对变量的引用可能吗?但我不想用包装纸。

返回对C#中double的引用

您想要的是一个索引器:

public class Matrix
{
    public double this[int i, int j]
    {
        get
        {
            return internalStorage[i, j];
        }
        set
        {
            internalStorage[i, j] = value;
        }
    }
}

你这样消费:

var matrix = new Matrix();
if (matrix[i, j] > 3.0)
{
    // double at index i, j is bigger than 3.0
}
matrix[i, j] = 5.0;