Advertisement
damesova

Events

Dec 5th, 2022
490
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.76 KB | None | 0 0
  1. using System;
  2. delegate void Procedure();  // Декларация на делегат,
  3.                             // който за примера не приема параметри
  4.                             // и не прави нищо
  5.  
  6. namespace Events
  7. {
  8.     public class DelegateDemo
  9.     {
  10.         public static void Method1()
  11.         {
  12.             Console.WriteLine("Method 1");
  13.         }
  14.  
  15.         public static void Method2()
  16.         {
  17.             Console.WriteLine("Method 2");
  18.         }
  19.  
  20.         public void Method3()
  21.         {
  22.             Console.WriteLine("Method 3");
  23.         }
  24.  
  25.         static void Main()
  26.         {
  27.             // Създаване на инстанция (обект) от делегата  
  28.             // На този етап все още няма отнасящи се методи към делегата
  29.             Procedure someProcs = null;  
  30.  
  31.             // Тук с помощта на оператора += се добавят обработчици (методи)
  32.             someProcs += new Procedure(DelegateDemo.Method1);//Синт. с име на класа
  33.             someProcs += new Procedure(Method2);  // Синтаксис без име на класа
  34.  
  35.           // Създаване на обект, върху който ще се извика метод 3
  36.             DelegateDemo demoObject = new DelegateDemo();
  37.  
  38.             someProcs += new Procedure(demoObject.Method3);   // Синтаксис за добавяне на метод на инстанция
  39.  
  40.             someProcs();    // Извикване на делегата, а с него - всички методи,
  41.                             // добавени към неговата инстанция
  42.         }
  43.     }
  44. }
  45.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement