【发布时间】:2014-09-25 16:49:06
【问题描述】:
我正在尝试实现一个通用功能,假设我们有模式&它是相应的子模式
现在我所做的是为模式创建了一个枚举
public enum Modes
{
ModeA,
ModeB,
ModeC
}
对于子模式也是如此,
public enum SubModesA
{
SubModeA1,
SubModeA2,
SubModeA3
}
public enum SubModesB
{
SubModeB1,
SubModeB2
}
public enum SubModesC
{
SubModeC1,
SubModeC2,
SubModeC3
}
现在我的问题是,如何实现一个方法(它可能是一个通用的),它将Mode 作为一个输入,Sub Modes 作为第二个输入,请注意第二个输入(子模式)必须是基于第一个输入,
(例如Public void PerformOperation(Modes mode, SubModes subMode){};
有什么想法吗?
【问题讨论】:
-
他们必须是
enum类型吗?编辑:澄清一下,它们可以是具有一组固定成员的类(例如:stackoverflow.com/questions/2119714/…),还是可以是其他任何东西? -
您的 PerformOperation 方法最好将接口作为参数,然后对接口类型执行操作。这样您就不必在每次添加新操作时都添加到枚举中。
-
枚举是理想的,因为用户在键入时可以看到相应的子模式。
-
@San':这纯粹是为了为使用您的代码的开发人员实现一些不错的智能感知/API 吗?您还有其他计划吗(例如序列化?)
-
这听起来像多态行为,你应该使用实际多态而不是强制一些枚举开关。