编译器错误 CS1917
无法使用对象初始值设定项为类型为“结构名”的只读字段“名称”的成员赋值,因为它是值类型
在构造函数中只能为值类型的只读字段赋值。
将结构更改为类类型。
用构造函数初始化结构。
以下代码生成 CS1917:
// cs1917.cs
class CS1917
{
public struct TestStruct
{
public int i;
}
public class C
{
public readonly TestStruct str = new TestStruct();
public static int Main()
{
C c = new C { str = { i = 1 } }; // CS1917
return 0;
}
}
}