日期:2014-05-18  浏览次数:20481 次

一个枚举参数传递的问题
C# code

//test1.cs
public class test1
{
    public enum aa{ zz, xx, cc }
    public enum bb{ vv, hh, nn}

    public string cc(aa enum1, bb enum2)
    {
        return null;
    }
}

//test2.cs
public class test2
{
    string dd = new test1().cc(test1.aa.zz, test1.bb.hh);
}



以上的程序这样写没问题,但是如果定义的枚举越多,传递的参数就会越多,有没有办法把枚举集合起来,然后只用一个参数就可以传递了?(不用在意return null;测试用的而已)

比如变这样:
C# code

public class test1
{
    枚举集合
    {
        enum aa{ zz, xx, cc }
        enum bb{ vv, hh, nn}
    }

    public string cc(集合 mm)
    {
        return null;
    }
}

//test2.cs
public class test2
{
    枚举集合 tt = new 枚举集合();
    tt.aa.zz;
    tt.bb.hh;

    string dd = new test1().cc(tt);
}



我知道上面那样写是肯定错误的,我只是想表达我的意思,有没有办法这样实现起来?(不用在意return null;测试用的而已)

------解决方案--------------------
你可以把枚举当个实体类。实体类怎么操作。你就怎么操作!
------解决方案--------------------
就当实体类处理吧 枚举型属性属性名可以就是枚举的名字
------解决方案--------------------
要不你将需要的参数用一个实体类来处理,要不就直接在参数列表中列出来。用一个实体类的话,可以考虑在利用反射来获取字段或属性