将不同的枚举组合成一个参数C#

时间:2013-01-18 05:29:13

标签: c# events enums action

我正在开设一个活动课程。 目前有两个枚举。

[Flag]
public enum Status
{
    statusA,
    statusB,
    statusC,
    statusD,
}

[Flag]
public enum StatusType{
    Request,
    Success,
    Fail,
    Start,
    End
}

我希望能够举起事件,例如Action RequestingStatusA(Status.StatusA& StatusType.Request)。 这当然会给出错误。反正是在运行中将它们组合在一起但是将它作为一个签名,以便事件处理程序能够识别它。

我甚至可以这样做吗? 提前谢谢。

1 个答案:

答案 0 :(得分:3)

没有。不仅如此,如果您尝试映射未转换的位值,您将会发生碰撞 - 所以不要盲目考虑转换为int:)

为什么不创建(并传递)包含两个枚举类型值的新类型?

struct RequestStatus {
  // implement as desired
  public StatusType Type { get; set; }
  public Status Status { get; set; }
}

Action RequestingStatusA (RequestStatus status) {
  ..
}