考虑以下几点:数组属性是否导致堆上的内存分配?
public class FooBar {
public int[] SomeNumbers {
get { return _someNumbers; }
private set;
}
private int[] _someNumbers;
public FooBar() {
_someNumbers = new int[2];
_someNumbers[0] = 1;
_someNumbers[1] = 2;
}
}
// in some other method somewhere...
FooBar foobar = new FooBar();
Debug.Log(foobar.SomeNumbers[0]);
什么我不知道的,不调用SomeNumbers属性导致堆分配;基本上它会导致数组的副本被创建,还是只是一个指针?
我问,因为我试图解决由于返回数组功能的一些GC的问题我有,我想确保我的缓存一些这样的价值观的理念将真正发挥作用
数组通过引用传递/返回,所以是的,你的属性基本上只是返回一个指针。 –