1. ホーム
  2. c#

C#の列挙型。Nullableか'Unknown'値か?

2023-09-28 19:28:28

質問

もし、クラスが enum メンバを持つクラスがあり、このメンバが定義されていない状況を表現できるようにしたい場合、どちらが良いでしょうか?

a) nullable型を使ってクラス内でメンバをnullableとして宣言する。例

public SomeEnum? myEnum;

b) 列挙にデフォルトの、「不明」な値を追加する。例

public enum SomeEnum {
    Unknown,
    SomeValueA,
    SomeValueB,
    SomeValueC,
}

どちらにも大きな長所と短所は見当たりませんが、おそらくどちらかが他よりも好ましいのでしょう?

どのように解決するのですか?

間違いなく nullable 値の型を使用してください - そのためのものです。これは、あなたの意図を明示的に示すものです。また、これは Enum.IsDefined (または 制約のないメロディ を使えば、特定の値が 本当の の値であるかどうかを簡単に判断することができます。