我目前正在撰写一个由展品组成的旅游软件程序。这次展览的对象,在任何给定的点,是在四个州之一,由ExhibitStates枚举定义:是否有可能限制在C#中的公共枚举值?
private enum ExhibitState { Ready, Active, Complete, Inactive };
对于开发商谁将会设立的展品,只有两个“启动”状态,我希望他们能够以供选择:
public enum StartingExhibitState { Ready, Inactive };
目前,我有它设置,以便在被初始化,展览将立即设置其状态以匹配其起始状态,就像这样:
switch (startingState) {
case StartingExhibitState.Ready:
SetState(ExhibitState.Ready);
break;
case StartingExhibitState.Inactive:
SetState(ExhibitState.Inactive);
break;
}
我发现自己今天想知道这是否是最佳做法。有没有更好的方法来限制哪些枚举选项是公开的,哪些是私有的?或者最好是只有两个单独的枚举?
非常感谢你的时间。
在你的类中限制枚举值的“设置”不是更容易吗? – maccettura
您的switch语句的设置方式,您可以简单地设置状态,或者为不想使用的情况设置一次,一次突破它们,并将状态设置为默认操作。我也会假设一个国家是否真的可以从非激活状态切换到完成状态是逻辑的? – Icepickle
你可以默认为'Inactive'并提供'SetReady'方法,根本不需要传递开始状态。 –