共用方式為


編譯器錯誤 CS1918

更新:2007 年 11 月

錯誤訊息

型別 'type' 的屬性 'name' 成員無法以物件初始設定式進行指派,因為它是實值型別。

結構 (Struct) 型別本身是正在初始化之類別 (Class) 的屬性,而如果您嘗試使用物件初始設定式來初始化該結構型別的屬性,則會發生這個錯誤。

若要更正這個錯誤

  • 如果必須完整初始化物件初始設定式中之屬性的欄位,請將結構變更為類別型別。否則,在您使用物件初始設定式建立物件之後,請使用不同的方法呼叫來初始化結構成員。

範例

下列範例會產生 CS1918:

// cs1918.cs
public struct MyStruct
{
    public int i;

}
public class Test
{
    private MyStruct str = new MyStruct();
    public MyStruct Str
    {
        get
        {
            return str;
        }
    }
    public static int Main()
    {
        Test t = new Test { Str = { i = 1 } }; // CS1918
        return 0;
    }
}

請參閱

參考

物件和集合初始設定式 (C# 程式設計手冊)