私は驚いていましたが、C#ではコンストラクタで列挙型を作成できます。 は例えば、私は、列挙型を持っている:enumコンストラクタを防ぐ方法
public enum Color
{
White = 1,
Red = 2
}
それからそれは次のように作成することができます。
var color = new Color();
そして、値が実際に有効な列挙値ではありません0になります。
したがって、何らかの理由で列挙型コンストラクタを禁止できますか?これを避ける方法は他のアイデアですか?
ありがとうございました。
'var color =(Color)125;'も完全に合法です。 enum変数を読み取っているときに値が有効かどうかを手動でチェックする必要があります。 – Haukinger
https://msdn.microsoft.com/en-us/library/ms182149.aspxを参照してください。フラグ列挙型ですか? – PaulF
有効かどうかにかかわらず、値タイプのデフォルトは0であり、変更できません。あなたは何のためにenumを使っていますか?たぶん、より多くの文脈があれば、代替案を提案することができます。 – Equalsk