我正在开始一个类的事件。当前有两个枚举。
[Flag]
public enum Status
{
statusA,
statusB,
statusC,
statusD,
}
[Flag]
public enum StatusType{
Request,
Success,
Fail,
Start,
End
}
我希望能够引发事件,Action RequestingStatusA(状态)。StatusA,StatusType.Request)为例。这当然会产生误差。是否有办法在运行中组合它们,但使其作为签名,以便事件处理程序能够识别它。
我应该这样做吗?
No。不仅如此,如果你试图映射未转换的位值,你还会有冲突——所以不要盲目地考虑转换为int
:)
为什么不创建(并传递)一个新的类型来包装和枚举类型的值?
struct RequestStatus {
// implement as desired
public StatusType Type { get; set; }
public Status Status { get; set; }
}
Action RequestingStatusA (RequestStatus status) {
..
}