編譯器錯誤 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() {}
}