我是 C# 的新手,我正在尝试实现一个矩阵类。我想要一个 at(i,j) 函数,它支持设置和获取数据,即我希望能够将它用于 M.at(i,j)=5.0
和 if (M.at(i,j)>3.0)
。在 C++ 中,我会这样写:
double& at(i,j) {
return data[i * cols+ j];
}
同样的函数在 C# 中看起来如何? 我读过一些主题,例如 Is it Possible to Return a Reference to a Variable in C#? 但我不想使用包装器。
最佳答案
您正在寻找的是 indexer :
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;
关于c# - 在 C# 中返回对 double 的引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33594297/