在 C# 中,自动实现的属性是一件非常方便的事情。然而,尽管它们只是封装了它们的支持字段,但它们仍然不能作为 ref 或 out 参数传递。例如:
public int[] arr { get; private set; } /* Our auto-implemented property */
/* ... */
public void method(int N) { /* A non-static method, can write to this.arr */
System.Array.Resize<int>(ref this.arr, N); /* Doesn't work! */
}
在这种特定情况下,我们可以通过以下方式解决问题:
public void method(int N) { /* A non-static method, can write to this.arr */
int[] temp = this.arr;
System.Array.Resize<int>(ref temp, N);
this.arr = temp;
}
有没有更优雅的方法来使用对 C# 中自动实现属性的支持字段的引用?