首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> C# >> C# 入門

C# 匿名方法與委托:語法、實例化、調用與捕獲變量

     編輯:C# 入門

C# 匿名方法與委托:語法、實例化、調用與捕獲變量

委托是類型安全的方法引用。匿名方法(C# 2.0 引入)允許直接將代碼塊作為委托參數傳遞,無需單獨定義命名方法。

語法與聲明

delegate void NumberChanger(int n);
// 匿名方法實例化委托
NumberChanger nc = delegate(int x) {
    Console.WriteLine($"Anonymous: {x}");
};
nc(10);  // 調用

完整示例:匿名 vs 命名方法

delegate void NumberChanger(int n);
class Test {
    static int num = 10;
    static void AddNum(int p) { num += p; Console.WriteLine($"Named Add: {num}"); }
    static void MultNum(int q) { num *= q; Console.WriteLine($"Named Mult: {num}"); }
    static void Main() {
        // 匿名方法
        NumberChanger nc = delegate(int x) { Console.WriteLine($"Anon: {x}"); };
        nc(10);  // Anon: 10
        // 命名方法
        nc = new NumberChanger(AddNum);
        nc(5);   // Named Add: 15
        nc = new NumberChanger(MultNum);
        nc(2);   // Named Mult: 30
    }
}

輸出:

Anon: 10
Named Add: 15
Named Mult: 30

關鍵特性

  • 無需指定返回類型,從 return 推斷
  • 可捕獲外部局部變量(閉包)
  • 委托可鏈接多播(+/- 操作符)
  • C# 3.0+ 推薦使用 Lambda 表達式(x => Console.WriteLine(x))替代匿名方法
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved