private static MenuItemA[] MenuItems1 =
{
new MenuItemA("選項1", 執行方法),
new MenuItemA("選項2", 執行方法),
new MenuItemA("選項3", 執行方法)
};
新增兩個選項需「19:00 後可見」。若用 if 硬編碼例外,擴充性差;決定在選單項目類別加入條件邏輯。
public class MenuItemB
{
public readonly string Name;
public readonly SimpleMenuAction Action;
public readonly int FromHour;
public MenuItemB(string name, SimpleMenuAction action, int fromHour)
{
Name = name; Action = action; FromHour = fromHour;
}
}
private static MenuItemB[] MenuItems2 =
{
new MenuItemB("選項1", 執行方法, 0),
new MenuItemB("選項2", 執行方法, 0),
new MenuItemB("選項3", 執行方法, 0),
new MenuItemB("選項4", 執行方法, 19)
};
建構選單時檢查 DateTime.Now.Hour >= item.FromHour。但此法僅支援「起始小時」,若需「結束小時」或「時段」、「星期幾」,類別仍需不斷擴充欄位,結構僵化。