閱讀英文

共用方式為


編譯器錯誤 CS1918

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

如果您嘗試使用物件初始設定式所初始化的結構類型屬性,本身就是所初始化類別的屬性,會發生這個錯誤。

更正這個錯誤

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

範例

下列範例會產生 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;  
    }  
}  

另請參閱