我在为结构数组的成员创建别名时遇到问题。通常当数组成员是引用类型时,我创建对成员引用的引用,如下所示:
CustomReferenceType[] foo = new CustomReferenceType[10];
CustomReferenceType alias=foo[0];
尝试对具有值类型成员的数组执行类似操作时,编译器会将值本身复制到新变量,因此,例如,当我操作结构的成员时,更改不会反映回原始值结构
有没有办法在没有装箱/拆箱的情况下对值类型成员进行别名?
答案 0 :(得分:2)
不,无法创建对值类型的引用。
除了通过引用方法传递值对象的情况之外,C#不提供引用值对象的方法。您需要在数组中设置实际对象以使其值更改。
注意:自struct
s should generally remain immutable以来,不应要求创建对它们的引用。