有没有办法获取对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

我想知道是否有办法在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 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这样做很不安全,所以你必须使用指针。@AntoineGagnon
ref
存在于堆栈中。这就是C#如何确保寿命。尽管如此,您可以将数组设置为字段,然后在每次需要时使用
ref