c# - 在 C# 中返回对 double 的引用?

标签 c# reference

我是 C# 的新手,我正在尝试实现一个矩阵类。我想要一个 at(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# 中看起来如何? 我读过一些主题,例如 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/

相关文章:

c++ - 在 C++ 中通过引用与通过值将 vector 传递给函数

C++:将对象传递给类构造函数,它是如何存储的?

c# - 在文本框验证事件中,如何忽略对某个按钮的点击?

c# - 如何制作一个适用于多种形式的变量?

c# - 隐藏的 ASP/C# 代码无法从标记获得控制

c# - SSIS-PostAsJsonAsync 不起作用

c++ - 练习 : pointers and references in C++

C# - 动态访问变量名称

android - 我应该在我的 Activity 中保留对 fragment 的引用吗

java - 是否有具有通用引用接口(interface)的标准库?