C#struct非静态struct成员不能有初始化器

时间:2014-07-25 09:27:07

标签: c# struct

屏幕上出现错误的原因是什么?

public struct  YetkiYapisiListesi
{
    public bool STOKGUNCELLE =false ;
    public bool STOKSIL=false;
    public bool STOKLISTELE=false;
}
  

非静态struct成员不能有初始值设定项

2 个答案:

答案 0 :(得分:1)

C#不允许struct拥有初始值设定项,之前已经讨论过的原因,请参见此处:(Why can't I initialize my fields in my structs?

只需从字段声明中删除= false部分即可。

请注意,默认情况下,Boolean字段为false,因此您的作业完全没必要。

如果您绝对需要将字段初始化为非默认值,那么您仍然可以定义另一个设置这些值的构造函数,但它不能是默认(无参数)构造函数。另一种选择是使用静态工厂方法。

答案 1 :(得分:1)

您无法在Struct上初始化字段。

即使您省略初始化,您也会得到相同的结果:

public bool STOKGUNCELLE;
public bool STOKSIL;
public bool STOKLISTELE;
public bool STOKHAREKET;

因为 bool默认值为false