首页 > 解决方案 > 获取对变量的引用并避免不必要地复制它

问题描述

假设我有这样的课程:

class Array{
    int[] values;
}

现在假设我有一个存储很多Arrays 的类:

class ArrayOfArrays{
    Array[] arrays;
}

假设,出于某种原因,我想获取最后Array一个arrays变量并放入一个变量(为了更好的可读性)。在 C 中,我会喜欢Array last = &ArrayOfArraysObject.arrays[lastIndex]. 因为我不会修改它,为了获得更好的性能,我不需要复制整个数组,只需一个参考就可以了。

我可以在 C# 中有这种行为吗?(不使用函数调用,我不想创建一个函数只是为了使用关键字ref,它看起来有点矫枉过正)

标签: c#reference

解决方案


您可以创建一个public返回最后一个元素的属性arrays

class ArrayOfArrays
{
    Array[] arrays;

    public Array LastOfArrays { get { return arrays.Last(); } }
}

测试它:

var aoa = new ArrayOfArrays();
// Initialize and enter data here

//When you want to use the last item:
var last = aoa.LastOfArrays;
last.values[0] = 333;

现在,aoa.arrays[LastElement].values[0]也将是333。因此,您基本上确实在此处保留了引用,并且不会复制整个数组。

确认:

在此处输入图像描述


推荐阅读