想象一下场景。
public enum SaveStates
{
Saved, //Represents a successful save.
SavedWithChanges, //Represents a successful save, where records were modified
SavedWithoutChanges //Represents a successful save, but no records were modified
}
在这个场景中,如果枚举类型为
SavedWithChanges
或者 SavedWithoutChanges
,那么可以将其视为 Saved
。因此,如果我有一个像这样的变量:
SaveStates lastState = SaveStates.SavedWithoutChanges;
我希望能够做类似于这样的事情:
if (lastState == SaveStates.Saved)
{
//The state is saved, do something awesome.
}
我当然可以做到这一点:
if (lastState == SaveStates.SavedWithChanges || lastState == SaveStates.SavedWithoutChanges)
{
...
然而,这有点繁琐,我不能假设另一个开发人员知道如何正确地使用枚举。
由于可能存在一种情况,即在保存事件中没有进行任何更改时,我们可能希望执行某些特定操作,因此每个枚举都是必需的。
我可以接受替代设计想法。
Enum.IsDefined
。 - juharr