我想知道是否有可能做到这一点,而不使用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