首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 3.0 入門【Lambda 表達式】第二章(二):從委派欄位到匿名方法——選單可用性判斷的演進

     編輯:關於C語言

List 2:初始選單陣列(無條件)

private static MenuItemA[] MenuItems1 =
{
    new MenuItemA("選項1", 執行方法),
    new MenuItemA("選項2", 執行方法),
    new MenuItemA("選項3", 執行方法)
};

需求變更:特定時段才顯示

新增兩個選項需「19:00 後可見」。若用 if 硬編碼例外,擴充性差;決定在選單項目類別加入條件邏輯。

List 3:加入 FromHour 整數欄位

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。但此法僅支援「起始小時」,若需「結束小時」或「時段」、「星期幾」,類別仍需不斷擴充欄位,結構僵化。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved