我希望我能以清晰的方式解释我的问题,让大家都能明白。我们需要您对此提出建议。
我们有一个枚举类型,其中定义了15个以上的常量。我们从Web服务接收到一份报告,并将其一列翻译成该枚举类型。根据我们从Web服务接收到的内容,使用Dictionary运行特定的函数。
为什么我要寻求想法呢?假设这些枚举常量中有3个符合我们Dictionary中的特定功能,而其余的则使用相同的功能。那么,是否有一种更好的方法将它们添加到我们的Dictionary中,而不是逐个添加?我还想保留这种结构,因为在未来,我所描述的“其余”可能有特定的功能。
为了更加清楚,这里有一个示例,我们正在尝试实现:
枚举:
我们有一个枚举类型,其中定义了15个以上的常量。我们从Web服务接收到一份报告,并将其一列翻译成该枚举类型。根据我们从Web服务接收到的内容,使用Dictionary运行特定的函数。
为什么我要寻求想法呢?假设这些枚举常量中有3个符合我们Dictionary中的特定功能,而其余的则使用相同的功能。那么,是否有一种更好的方法将它们添加到我们的Dictionary中,而不是逐个添加?我还想保留这种结构,因为在未来,我所描述的“其余”可能有特定的功能。
为了更加清楚,这里有一个示例,我们正在尝试实现:
枚举:
public enum Reason{
ReasonA,
ReasonB,
ReasonC,
ReasonD,
ReasonE,
ReasonF,
ReasonG,
ReasonH,
ReasonI,
ReasonJ,
ReasonK
}
定义我们的字典:
public Dictionary<Reason, Action<CustomClassObj, string>> ReasonHandlers = new Dictionary<Reason, Action<CustomClassObj, string>>{
{ Reason.ReasonA, HandleReasonA },
{ Reason.ReasonB, HandleReasonB },
{ Reason.ReasonC, HandleReasonC },
{ Reason.ReasonD, HandleReasonGeneral },
{ Reason.ReasonE, HandleReasonGeneral },
{ Reason.ReasonF, HandleReasonGeneral },
{ Reason.ReasonG, HandleReasonGeneral },
{ Reason.ReasonH, HandleReasonGeneral },
{ Reason.ReasonI, HandleReasonGeneral },
{ Reason.ReasonJ, HandleReasonGeneral },
{ Reason.ReasonK, HandleReasonGeneral }
};
基本上我想问的是,有没有更加智能的方法来添加原因、功能对?因为您可以看到,在 ReasonC 之后,所有其他原因都使用相同的函数。
感谢您的建议。
switch
,除非你有一些动态需求。 - leppie