使用英语阅读

通过


编译器错误 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;  
    }  
}  

请参阅