委托是類型安全的方法引用。匿名方法(C# 2.0 引入)允許直接將代碼塊作為委托參數傳遞,無需單獨定義命名方法。
delegate void NumberChanger(int n);
// 匿名方法實例化委托
NumberChanger nc = delegate(int x) {
Console.WriteLine($"Anonymous: {x}");
};
nc(10); // 調用
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 推斷x => Console.WriteLine(x))替代匿名方法