いつものように、それは依存します。
[Flags]
列挙型の場合、None
「これらのオプションのどれも」が有用な概念であるため、ほとんどの場合、値を使用することをお勧めします。[Flags]
列挙型以外の場合、概念的に明らかに有用でない限り、通常は値None
を含めません。
とはいえ、「クラス ライブラリを開発するための設計ガイドライン」の一部としての列挙ガイドラインには、次のものが含まれます。
単純な列挙にはゼロの値を指定してください。
可能であれば、この値に None という名前を付けます。None が適切でない場合は、値 0 を最も一般的に使用される値 (デフォルト) に割り当てます。
...例には が含まNone
れていませんが、.NET フレームワークの多くの列挙型にもNone
値がありません...
null 許容列挙型を使用する必要があるかどうかについては、状況によって異なります。実際には賢明な色ではないため、「値があるかもしれない、またはないかもしれない」という変数を使用します。より便利な手段を持たないこと、IMO。列挙型が他の null 非許容値型と異なるのはなぜですか? 通常、「情報がありません」の場合は 0 を使用せず、代わりに an を使用します。を処理する方法と一致する方法で列挙型を処理することをお勧めします。Color?
Color
None
None
Enum.IsDefined(typeof(Color))
int?
int
(そうは言っても、私は野田時間にNone
値として含めているIsoDayOfWeek
ことがわかります.今それを見て驚いています。)