0
來自c + +背景,我總是對值類型感到困惑。 如果你在一個valuetype上調用一個構造函數,它是否總是會導致裝箱? 例如,c#拳擊價值類型
public struct myvaltype
{
public int x;
public int y;
public myvaltype(int thisx,int thisy)
{
x = thisx;
y = thisy;
}
}
myvaltype tsts1 = new myvaltype();
myvaltype tsts2 = new myvaltype(8, 9);
做這兩個構造函數調用的原因拳擊? 如果是,那麼避免裝箱的唯一方法是手動設置每個成員對象(x,y)?
爲什麼你會期望在這個例子中的任何拳擊? – ken2k
來自C++應該很容易在C#中使用值類型。如果你想象每個引用類型中的'*',C#的行爲類似於C++(比如想象'string'真的是「string *」,因爲它是引用類型)。 C#有與缺省淺拷貝相關的問題和錯誤地修改值類型的臨時拷貝... –