gpt4 book ai didi

c# - 有没有一种方法可以在不使用构造函数的情况下初始化结构的成员?

转载 作者:可可西里 更新时间:2023-11-01 08:18:51 24 4
gpt4 key购买 nike

我有一个包含两个列表的结构:

struct MonthData
{
public List<DataRow> Frontline;
public List<DataRow> Leadership;
}

但是,我想在创建结构时初始化两者。如果我尝试:

struct MonthData
{
public List<DataRow> Frontline = new List<DataRow>();
public List<DataRow> Leadership = new List<DataRow>();
}

然后我得到:

Error   23  'MonthData.Frontline': cannot have instance field initializers in structs
...

由于结构不能有无参数的构造函数,我也不能只在构造函数中设置它。到目前为止,我只能看到以下选项:

  1. 在创建 MonthData 实例时初始化这两个属性
  2. 使用类而不是结构
  3. 创建一个带参数的构造函数并使用它
  4. 为初始化它们的属性制作 getter 和 setter懒惰地。

推荐的方法是什么?现在,我认为将其作为一门类(class)是最好的主意。

最佳答案

您应该改用类。来自 MSDN :

In general, classes are used to model more complex behavior, or data that is intended to be modified after a class object is created. Structs are best suited for small data structures that contain primarily data that is not intended to be modified after the struct is created.

关于c# - 有没有一种方法可以在不使用构造函数的情况下初始化结构的成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8158038/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com