我目前正在撰寫一個由展品組成的旅遊軟件程序。這次展覽的對象,在任何給定的點,是在四個州之一,由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'方法,根本不需要傳遞開始狀態。 –