更新:2007 年 11 月

错误消息

无法使用对象初始值设定项为类型为“type”的属性“name”的成员赋值,因为它是值类型。

在尝试使用对象初始值设定项对结构类型的属性进行初始化时,如果该结构类型本身是正在初始化的类的属性,则会发生此错误。

更正此错误

  • 如果必须用对象初始值设定项对属性的字段进行完全初始化,请将该结构更改为类类型。另一种方法是,在使用对象初始值设定项创建对象后,在单独的方法调用中对该结构的成员进行初始化。

示例

下面的示例生成 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# 编程指南)