共用方式為


編譯器錯誤 CS1612

更新:2007 年 11 月

錯誤訊息

因為不是變數,無法修改 'expression' 的傳回值

嘗試修改的實值型別 (Value Type) 是中繼運算式的結果。由於該值不會保存,因此將不會變更這個值。

若要解決這個錯誤,請將運算式的結果儲存在中繼值中,或是使用中繼運算式的參考型別 (Reference Type)。

範例

下列程式碼會產生錯誤 CS1612:

// CS1612.cs
public struct MyStruct
{
    public int Width;
}

public class ListView
{
    public MyStruct Size
    {
        get { return new MyStruct(); }
    }
}

public class MyClass
{
    public MyClass()
    {
        ListView lvi;
        lvi = new ListView();
        lvi.Size.Width = 33;  // CS1612
        // Use this instead:
        // MyStruct temp = lvi.Size;
        // temp.Width = 33;
    }

    public static void Main() {}
}