有没有办法获取对C#数组元素的引用?
我想知道是否有办法在c#中获取数组元素的引用 类似这样但没有指针的东西:有没有办法获取对C#数组元素的引用?,c#,arrays,pointers,ref,C#,Arrays,Pointers,Ref,我想知道是否有办法在c#中获取数组元素的引用 类似这样但没有指针的东西: SomeClass *arr[5]; ... SomeClass** p = &arr[2]; 到目前为止,我得到了这个: SomeClass arr[] = new SomeClass[5]; // Put something in the array SomeClass p = arr[2]; // This will give me the initial object, not the array
SomeClass *arr[5];
...
SomeClass** p = &arr[2];
到目前为止,我得到了这个:
SomeClass arr[] = new SomeClass[5];
// Put something in the array
SomeClass p = arr[2]; // This will give me the initial object, not the array ref
p = new SomeClass(); // I want the array to now use this new object
这不是你想要的吗
var arr = new SomeClass[5];
ref SomeClass p = ref arr[2];
p = new SomeClass();
如果
SomeClass
是引用类型,那么您在arr[2]
处有一个对对象的引用,并且更改p
的属性将更改arr[2]
中的相同属性。我将编辑该问题以更好地解释该问题。如果没有指针,则无法做到这一点。为什么要将此字段设置为字段?听起来像个XY问题。如果你只想“获取并设置SomeClass
”,你可以存储Func
和Action
。是的,但是有没有办法将p
声明为成员变量?@AntoineGagnon这样做很不安全,所以你必须使用指针。@AntoineGagnonref
存在于堆栈中。这就是C#如何确保寿命。尽管如此,您可以将数组设置为字段,然后在每次需要时使用ref
。