如何引用结构数组中的元素[C#]

如何引用结构数组中的元素[C#],c#,structure,C#,Structure,很抱歉提出这个问题,但我是C#(从C++开始)的新手 我有一个结构: public struct A { int a,b,c,d; } 此外,我还有一个此结构实例的数组 A[] a = new A[10]; 因此,我需要对数组中的一个元素进行引用: A b = a[5]; b.x = 10; 但看起来“b”不是引用,而是“a[5]”的副本。换句话说,这段代码修改了“b”,但并没有改变数组“a”的索引为5的元素。因此,问题是-如何在结构数组中引用元素?结构是值类型(即使在c++中也是

很抱歉提出这个问题,但我是C#(从C++开始)的新手

我有一个结构:

public struct A {
    int a,b,c,d;
}
此外,我还有一个此结构实例的数组

A[] a = new A[10];
因此,我需要对数组中的一个元素进行引用:

A b = a[5];
b.x = 10;

但看起来“b”不是引用,而是“a[5]”的副本。换句话说,这段代码修改了“b”,但并没有改变数组“a”的索引为5的元素。因此,问题是-如何在结构数组中引用元素?

结构是值类型(即使在c++中也是如此)。重写上述作为类,你应该得到期望的结果。< /P> C++中,我可以写<代码> A&B= A[5 ];
,但在C#中不使用类也可以这样做吗?@Tutankhamen您可以将数组的值类型元素作为
ref
传递给方法。。。但通常不建议使用可变的
struct
,这会导致混乱的行为。如果你发布你需要的实际原因,有人可能会建议更友好的方法。我只是想让本地代码更简短,更容易阅读。我有几个多维数组结构,我想使用简短命名的本地引用来代替所需的元素,而不是使用这样的代码<代码>动画列表[O.CurrimeFrase] [IOBONNUM] [IDX] …2Visukvkt:问题是关于结构,而不是类。即使在语法上,你可以在C++中做a & b= a(5),人们不赞成它有很多原因。在任何情况下,您都可以使用c#中的指针来实现这一点。将该方法标记为“不安全”,使用“/unsafe”编译,然后可以执行A*b=A[5];b->x=5;,您正在修改原始结构