program study story

プログラムの勉強 アウトプット

enum(列挙型) 補足 使い方集

enum(列挙型)の定義

enum Days
{
Mon,
Tue,
Web,
Thu,
Fri,
Sat,
Sun
}
enum Day : byte
{
月,
火,
水,
木,
金,

}

Switch文で使う方法

private void Form1_Load(object sender, EventArgs e)
{

//switch文で使う方法


Days days=Days.Mon;

switch (days)
{
case Days.Mon:
case Days.Fri:
case Days.Thu:
case Days.Tue:
case Days.Web:
Console.Write("平日です");
break;
case Days.Sat:
case Days.Sun:
Console.Write("休日です");
break;
default:
Console.Write("不正です");
break;

}
Console.ReadKey();

//列挙子の名前をToStringで文字列にして取得する

Day day = Day.月;

//ToStringで文字列に変換。
string dayname = day.ToString();
Console.Write(dayname);
Console.ReadKey();

}

//Convertを使ってキャストする。

Day day = Day.月;
string dayname = day.ToString();
Console.WriteLine(Convert.ToInt32(dayname));
Console.ReadKey();

//明示的にキャストする


Day day = Day.月;
string dayname = day.ToString();
Console.WriteLine*1
{

//nameにDaysからValueに格納されたものを格納
string name = Enum.GetName(typeof(Days), Value);

//格納したものを名前:番号という形で表示させる。

Console.WriteLine("{0}:{1}", name, (int)Value);
}
Console.ReadKey();

*1:int)dayname);エラーになってしまった。
Console.ReadKey();

なぜ?

//enumの値と名前をforeachで列挙する方法

//foreachでDays列挙子をEnumクラスの中にある、GetValueを使って、Days Valueに  格納していく。

foreach (Days Value in Enum.GetValues(typeof(Days)