更新: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; } } |