C#

C#の列挙体

More than 1 year has passed since last update.

拡張メソッドとかLLっぽくて、なかなか楽しい。

class Program

{
static void Main(string[] args)
{
foreach(EnumNumper e in Enum.GetValues(typeof(EnumNumper)))
{
Debug.WriteLine("{0}={1} {2}", e.ToString(), e.ToInt(), e.HasFlg(1));
}
}
}

public enum EnumNumper
{
Zero = 0,
One = 1,
Two = 2,
Three = 4,
Four = 8,
Five = 16
}

public static class EnuNumberClass
{
public static int ToInt(this EnumNumper e)
{
return (int)e;
}
public static bool HasFlg(this EnumNumper e, int x)
{
return ((int)e & x) == 0 ? false : true;
}
}

実行するとこんなかんじ。

A=0 False

B=1 True
C=2 False
D=4 False
E=8 False
F=16 False