我想修改数组内部结构的字段,而不必设置整个结构。在下面的示例中,我想在数组中设置元素543的一个字段。我不想复制整个元素(因为复制MassiveStruct会影响性能)。
class P
{
struct S
{
public int a;
public MassiveStruct b;
}
void f(ref S s)
{
s.a = 3;
}
public static void Main()
{
S[] s = new S[1000];
f(ref s[543]); // Error: An object reference is required for the non-static field, method, or property
}
}
有没有办法在C#中做到这一点?还是我总是必须将整个结构复制出数组,修改副本,然后将修改后的副本放回到数组中。
最佳答案
唯一的问题是,您尝试从静态方法调用实例方法,而没有P
实例。
将f
设为静态方法(或创建P
实例以对其进行调用)就可以了。这都是关于读取编译器错误的:)
话虽如此,我强烈建议您:
关于c# - 获取对数组内部结构的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7133859/