c# - 最佳实践 : action enum usage for events

标签 c# .net events

我发现自己很难为事件设计 Action 枚举。

f.ex制作计算处理器。

所以我应该有这样的枚举? :

public enum CalculatorCoreActions
{
    ProcessStarted,
    ProcessFinished,
    ProcessFailure,
    ProcessFailed,
    SubstractionStarded,
    SubstractionFinished,
    SubstractionFailure,
    SubstractionFailed,
    <etc.>...
}

或者我应该创建两个枚举?,f.ex:

public enum CalculatorAction
{
    Process,
    Substraction,
    Division
}

public enum CalculationActionResult
{
   Started,
   Finished,
   Failure,
   Failed
}

或者我什至应该创建一个新类? :

public class CalculatorActionEventArgs : EventArgs {<...>}
public class CalculatorActionFailedEventArgs : EventArgs {<...>}
public class etc... : EventArgs {<...>}

您认为哪种方法最好?

最佳答案

你想做什么?你打算用枚举来做什么?您的第一个示例可能适合很少的组合,而第二个示例将更复杂,但更清晰且更易于扩展。

我的猜测是,您希望能够显示计算的状态,并且可能对状态采取行动,例如错误处理。您可能会考虑StateState Machine模式而不是枚举,以避免枚举上出现大量 switch 语句。

关于c# - 最佳实践 : action enum usage for events,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/877378/

相关文章:

c# - 如何在删除子字符串后获取剩余字符串

c# - 检查当前是否没有用户登录到 Windows

c# - 在 XAML 中重用路径对象

delphi - 如何检测组件内部外部 ADO 连接是否已连接或断开?

javascript - 现代浏览器不支持"DOMAttrModified"事件?

c# - ComboBox DropDown 打开时不选择文本输入

c# - 对 DropDownList 进行排序?

c# - 返回旧 Web 方法的 ASMX 页面

javascript - 使用 JS/JQuery 按类选择文档后,将 onclick 事件添加到按钮