この例のために、レコード内の任意の 2 バイトが曜日を表すことを指定するファイルを解析しようとしているとします。
DayOfWeek:
- 0 = Monday
- 1 = Tuesday
- 2 = Wednesday
- 3 = Thursday
- 4 = Friday
- 5 = Saturday
- 6 = Sunday
- 7-15 = Reserved for Future Use
したがって、このフィールドにマップする列挙を定義できます。
public enum DaysOfWeek
{
Monday = 0,
Tuesday = 1,
Wednesday = 2,
Thursday = 3,
Friday = 4,
Saturday = 5,
Sunday = 6
ReservedForFutureUse
}
しかし、どうすれば有効な値を定義できますReservedForFutureUse
か? 理想的には、次のようなことをしたいと思います:
public enum DaysOfWeek
{
Monday = 0,
Tuesday = 1,
Wednesday = 2,
Thursday = 3,
Friday = 4,
Saturday = 5,
Sunday = 6
ReservedForFutureUse = {7,8,9,10,11,12,13,14,15}
}
この問題は、より複雑なフィールドでのみ悪化します。たとえば、この場合、7 と 8 の両方が同じエラー ケースまたは何かにマップされているとします。C#列挙でこの要件をどのように捉えることができますか?