A
{
a1,a2
}
B
{b1,b2}现要写一个方法,该方法有一个参数,要求根据该参数动态的
获取响应枚举变量中的元素。比如如果传递是A,则获得a1,a2;
如果是B,则要求获得b1,b2;if else不符合要求,谢谢!

解决方案 »

  1.   


    public enum A
    {
        a1 = 1,
        a2 =2,
    }
    public enum B

        b1 =1,
        b2 =2,
    } void Check(object o)
        { 
            if(o.GetType() == typeof(A))
            {
                System.Array ary = System.Enum.GetValues(typeof(A));
                for(int i=0;i<ary.Length;i++)
                {
                    Response.Write(ary.GetValue(i).ToString()+"<BR>");
                }        }
        }
    调用。
            this.Check(A.a2);
      

  2.   

    用object做为参数的类型,然后用
    参数.GetType().ToString();来确定类型
      

  3.   

    何必用object
    就像Array是所有数组的基类一样
    Enum 是所有enum的基类
      

  4.   

    类似
    enum A
    {
    a1,a2
    }
    enum B
    {b1,b2}Array getvalues( Enum en )
    {
     return Enum.GetValues( en.GetType() );
    }
      

  5.   

    cpp2017(幕白兄) 
      现在有将近100个枚举类型,if else显然不符合要求啊
      

  6.   

    hdt(倦怠)
    请问该如何调用?
    不可能用getvalues(A)吧,难道先定义A a,
    然后Array arr=getvalues(a)?
    但这个不是我的本意,因为A不可直接调用,
    也就是说不能定义一个A的实例
      

  7.   

    jointan() 
    你的方法会遇到同样的问题
      

  8.   

    hdt(倦怠)
    就算能传递枚举类型,但如果返回Array,又怎么能获得
    枚举类型每个对应的整数值呢?比如a1对应2 a2对应5这样