2

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

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

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

我希望能够引发事件,例如 Action RequestingStatusA (Status.StatusA & StatusType.Request)。这当然会产生错误。无论如何,是否可以将它们即时组合,但将其作为签名,以便事件处理程序能够识别它。

我什至应该这样做吗?提前致谢。

4

1 回答 1

3

不。不仅如此,如果您尝试映射未转换的位值,您将遇到冲突 - 所以不要盲目考虑转换为int:)

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

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

Action RequestingStatusA (RequestStatus status) {
  ..
}
于 2013-01-18T05:36:31.800 回答