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()の中を
ちゃんと書けば問題ない。
直した後の書き方ならどこに列挙体があっても問題ない。

なんでこうなるのかはさっぱりわからない。

C# 2.0:Enum型のメモ” に対して1件のコメントがあります。

  1. Nhat より:

    入れ子の列挙型のため、
    Type.GetType(”EnumSample.Form1+TestEnum”)
    となります。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です