私は二つのリストが含まれていstruct
:コンストラクタを使用せずに構造体のメンバーを初期化する方法はありますか?
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
...
構造体は、パラメータなしのコンストラクタを持つことができないので、私はどちらかのコンストラクタでこれを設定することはできません。これまでのところ、私は、次のオプションを見ることができます:
- 私は
- MonthData のインスタンスを作成するときに、パラメータを持つコンストラクタを作成し、ことを使用する代わりに、構造体
- のクラスを使用して、両方のプロパティを初期化します
- 初期化するプロパティのgetterとsetterを作成してください。 lazily。
これにはどのような方法が推奨されますか?今、私はこれをクラスをベストアイデアにすると考えています。
これをクラスにします。構造体に参照型を追加すると、それはもはや値型ではなくなります。 – drdwilcox
参照型(クラス)と値型(構造体)を作ることは本当に問題ありませんか?もしそうなら、それをクラスにしてください。 – BoltClock
ええ、この型が構造体であることは意味がありません。 –