戻り列挙値を整数値にキャストするにはどうすればよいですか?
_allVisibleDays次のように、列挙型に整数値として設定されているすべてのフラグを取得したいと思います。
Tuesday設定されたら、Wednesdayこれらの名前をDayOfWeek列挙型にキャストして整数値を取得します。
したがって、以下の列挙型のとの代わりに、私をTuesday返します。2Wednesday 324
私はSOでこの方法を見つけました:
public IEnumerable<int> GetFlags()
{
foreach (Enum value in Enum.GetValues(typeof(VisibleDayOfWeek)))
if (_allVisibleDays.HasFlag(value))
yield return (int) value;
}
しかし、列挙型(上記の値)を整数にキャストするという単純な例のためだけに機能させることはできません...
private VisibleDayOfWeek _allVisibleDays;
[Flags]
enum VisibleDayOfWeek : int
{
None = 0,
Monday = 1,
Tuesday = 2,
Wednesday = 4,
Thursday = 8,
Friday = 16,
Saturday = 32,
Sunday = 64
}