唯一一种解释就是default(ABC)是0。。所以你输入0 编译器看成了default(ABC)。。所以能编译过这也是我的猜想,我估计就是这个原因

解决方案 »

  1.   

    楼主,枚举类默认的为0,肯定能识别,当你传入一个1的时候是int型的他根本不认识你个1是什么东东,一看类型跟我的类型不一致所以就报错了,应该是这样的
    private void button1_Click(object sender, EventArgs e)
            {
                Func(ABC.A1);
                Func(ABC.A2);
                Func(ABC.A3);            Func(0);
                Func((ABC)1);
                Func((ABC)2);
            }        public enum ABC
            {
                A1 = 1,
                A2 = 0,
                A3 = 2
            }        private void Func(ABC abc)
            {
                MessageBox.Show(abc.ToString());
            }