我想知道是否有可能做到這一點,而不使用setter。拆箱後更改結構字段到對象
void Main()
{
Point p = new Point();
p.x = 7;
Object o = p;
((Point)o).y = 9; // This doesnt work !
((Point)o).Print();
}
struct Point
{
public int x, y;
public void Print()
{
System.Console.WriteLine("x= "+this.x+"\ny= "+this.y);
}
}
是否可以通過轉換和取消裝箱來更改y值? 在此先感謝
好了,我知道+ - 它做什麼,它通過田間地頭到堆棧的頂部,然後到堆,然後與鄰必須的那部分參考堆(仍然學習不討厭xD)但我不能做oy = 9;那麼我可以在拳擊後改變這個值嗎? – Franmcod
@NoobCoder不,盒裝值實際上是不可變的。您需要填入新的值,並用新的值替換舊的參考值。 'MyBox'對於這種場景更有用,因爲它避免了自動裝箱 - 而且*不會創建副本(除非有一些自定義的鑄造操作符,當然:))。 – Luaan