เมธอดไม่ระบุชื่อ คือ เมธอดที่ไม่มีชื่อ ให้เทคนิคส่งบล็อกโค้ดเป็นพารามิเตอร์เดลิเกต
ประกาศพร้อมการสร้างอินสแตนซ์เดลิเกต ด้วยคีย์เวิร์ด delegate
ตัวอย่าง
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) {
// สร้างอินสแตนซ์เดลิเกตด้วยเมธอดไม่ระบุชื่อ
Demo d = delegate(int x) {
Console.WriteLine("Anonymous Method: {0}", x);
};
// เรียกใช้เดลิเกตด้วยเมธอดไม่ระบุชื่อ
d(100);
// สร้างอินสแตนซ์เดลิเกตด้วยเมธอดที่มีชื่อ
d = new Demo(AddNum);
d(5);
d = new Demo(MultNum);
d(2);
Console.ReadKey();
}
}
}
ผลลัพธ์
Anonymous Method: 100 Named Method: 55 Named Method: 110
โค้ดด้านบนคือเมธอดไม่ระบุชื่อของเรา:
Demo d = delegate(int x) { Console.WriteLine("Anonymous Method: {0}", x); };