C# 2.0:Enum型のメモ
なぜか下のコードが動かない。
public partial class Form1 : Form
{
{
enum TestEnum
{
AAA,
BBB,
CCC,
DDD,
}
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Type eType = Type.GetType(“EnumSample.Form1.TestEnum”);
TestEnum test = (TestEnum)Enum.Parse(eType, “CCC”); //「Nullにできません」エラー発生
MessageBox.Show(test.ToString());
}
}
エラーがでる箇所をこう直すと動くようになる。
TestEnum test = (TestEnum)Enum.Parse(typeof(TestEnum), “CCC”);
ちなみに、クラスの外に列挙体がある場合は最初の書き方でType.GetType()の中を
ちゃんと書けば問題ない。
直した後の書き方ならどこに列挙体があっても問題ない。
なんでこうなるのかはさっぱりわからない。
入れ子の列挙型のため、
Type.GetType(”EnumSample.Form1+TestEnum”)
となります。