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

Visual C# 2.0 匿名方法深度解析(二):內聯程式碼區塊替代獨立方法、委派過濾器實戰重構

     編輯:關於C語言

傳統寫法:每個過濾條件需獨立方法

導致類別程式碼膨脹、難以維護。

匿名方法重構:內聯定義過濾條件


public class Program
{
    public delegate void MyDelegate();
    public static void Main(string[] args)
    {
        MyCollection objMyCol = new MyCollection();
        objMyCol.ItemList.Add("Aditya");
        objMyCol.ItemList.Add("Tanu");
        objMyCol.ItemList.Add("Manoj");
        objMyCol.ItemList.Add("Ahan");
        objMyCol.ItemList.Add("Hasi");

        // 取得以 'A' 開頭的字串陣列
        string[] AStrings = objMyCol.GetFilteredItemArray(delegate(string sItem)
        {
            if (sItem[0] == 'A') return true;
            else return false;
        });

        Console.WriteLine("----- Strings starting with letter 'A' -----");
        foreach (string s in AStrings) Console.WriteLine(s);

        // 取得以 'T' 開頭的字串陣列
        string[] TStrings = objMyCol.GetFilteredItemArray(delegate(string sItem)
        {
            if (sItem[0] == 'T') return true;
            else return false;
        });

        Console.WriteLine("----- Strings starting with letter 'T' -----");
        foreach (string s in TStrings) Console.WriteLine(s);
    }
}

優缺點權衡

  • 優點:程式碼自然、避免定義大量小方法
  • 缺點:大型內聯區塊導致難以管理、可能重複程式碼
  • 建議:視情況選擇獨立方法或匿名方法

後續主題

深入探討匿名方法內部實作機制(閉包、捕獲變數、編譯器產生的巢狀類別),確保正確使用避免不可預期結果。

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