接受多个枚举类型的方法

Rob*_*met 3 c# enums

我有一个3类枚举类

我想有一个方法,可以将所有3个枚举作为参数,并获取枚举的整数值.

public enum Enum1
{
    Fire = 0,
    Hour_24 = 1,
    Key_Switch = 2,
    Follower = 3,
    Entry_Delay1 = 4,
    Entry_Delay2 = 5,
    Intertior = 6,
    Local_Only = 7,
}

public enum Enum2
{
    Faulted = 0,
    Tampered = 1,
    Trouble = 2,
    Bypassed = 3,
    Inhibited = 4, 
    Low_Battery = 5,
    Loss_Supervision = 6,
    Reserved,
    Alarm_Memory = 8,
    Bypass_Memory = 9
}

private void BuildMessage ()
{
     List<Enum1> Enum1List = new List<Enum1>();
     FillBits(Enum1List);  // => Here I get an error.
}

// This method should accept Enum1 and Enum2
private Byte[] FillBits(List<Enum> EnumList)
{
     foreach (Enum e in EnumList)
     {
        int value = Convert.ToInt32(e);
     }
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

谢谢

Cyr*_*don 6

只需使用通用:

private Byte[] FillBits<T>(List<T> EnumList)
        where T : struct, IConvertible
{
    if (!typeof(T).IsEnum) 
    {
        throw new ArgumentException("T must be an enumerated type");
    }
    foreach (var e in EnumList)
    {
        int value = Convert.ToInt32(e);
    }
}
Run Code Online (Sandbox Code Playgroud)

有关将generic和Enum一起使用,请参阅此问题:

创建将T限制为枚举的通用方法