Keyinchalik, ma'lum bir usulning manzili (bizning holatda, Salom usuli) delegatga uzatiladi. E'tibor bering, bu usul delegat bilan bir xil qaytish turiga va bir xil parametrlar to'plamiga ega (bu holda hech qanday parametr yo'q).
1
mes = Salom Dasturchi!; // 3. Ushbu o'zgaruvchiga usulning manzilini belgilang
Keyin, delegat orqali biz ushbu delegat murojaat qiladigan usulni chaqiramiz:
1
mes(); // 4. Biz usulni chaqiramiz
Delegatni chaqirish usulni chaqirishga o'xshaydi. Biroq, delegatlar ixtiyoriy ravishda faqat delegat o'zgaruvchisi aniqlangan bir sinfda aniqlangan usullarga ishora qilishi mumkin. Bu boshqa sinflar va tuzilmalarning usullari ham bo'lishi mumkin.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Message message1 = Welcome.Print; Message message2 = new Salom Dasturchi!().Display; message1(); // Welcome message2(); // Привет delegate void Message(); class Welcome { public static void Print() => Console.WriteLine("Assalomu alaykum!"); } class Salom Dasturchi! { public void Display() => Console.WriteLine("Salom!"); }
Delegatsiyani aniqlash joyi. Agar biz yuqori darajadagi dasturda delegatni aniqlasak, bu C# 10 dan boshlab standart Program.cs fayli, yuqoridagi misolda bo'lgani kabi, u holda, boshqa turlar kabi, delegat kod oxirida aniqlanadi. Lekin printsipial jihatdan delegat sinf ichida aniqlanishi mumkin: