Anonymous methods là phương thức không có tên. Chúng cung cấp kỹ thuật truyền khối code như tham số delegate.
Khai báo với từ khóa delegate khi tạo instance delegate.
Ví dụ
using System;
delegate void Demo(int n);
namespace DelegateAppl {
class TestDelegate {
static int num = 50;
public static void AddNum(int p) {
num += p;
Console.WriteLine("Named Method: {0}", num);
}
public static void MultNum(int q) {
num *= q;
Console.WriteLine("Named Method: {0}", num);
}
public static int getNum() { return num; }
static void Main(string[] args) {
// anonymous method
Demo d = delegate(int x) {
Console.WriteLine("Anonymous Method: {0}", x);
};
d(100);
// named method
d = new Demo(AddNum);
d(5);
d = new Demo(MultNum);
d(2);
Console.ReadKey();
}
}
}
Kết quả
Anonymous Method: 100 Named Method: 55 Named Method: 110
Đoạn code anonymous method:
Demo d = delegate(int x) { Console.WriteLine("Anonymous Method: {0}", x); };