クラスを不変にしたい。明らかな方法は、すべてのフィールドを as として宣言しget; private set;
、コンストラクターですべてのフィールドを初期化することです。したがって、クライアントはコンストラクターですべてを提供する必要があります。問題は、各フィールドにラベルがないため、コンストラクターでそれらを渡すフィールドが 10 個以上ある場合、非常に判読不能になることです。
たとえば、これはかなり読みやすいです:
info = new StockInfo
{
Name = data[0] as string,
Status = s,
LotSize = (int)data[1],
ISIN = data[2] as string,
MinStep = (decimal)data[3]
};
これと比較してください:
new StockInfo(data[0] as string, s, (int) data[1], data[2] as string, (decimal) data[3])
そして今、私は10個以上のパラメータを持っていることをイメージしています.
では、クラスを不変にして可読性を確保するにはどうすればよいでしょうか?
コンストラクターを使用する場合は、同じフォーマットのみを使用することをお勧めします。
info = new StockInfo(
data[0] as string, // Name
s, // Status
(int)data[1], // LotSize
data[2] as string, // ISIN
(decimal)data[3] // MinStep
);
もっと良いものを提案できますか?