讓我們來看下面的代碼。爲什麼c#中的unboxed結構體右值
struct SPoint
{
public int x;
public int y;
public SPoint(int x, int y)
{
this.x = x;
this.y = y;
}
}
class Test
{
public static void Main()
{
SPoint s = new SPoint(3, 4);
object o = s;
((SPoint) o).x = 5;
}
}
爲什麼不是最後的賦值可能?這種行爲的原因是什麼?
邊注:您的結構是可變的。檢查出http://stackoverflow.com/questions/441309/why-are-mutable-structs-vil –