Delegate в C#

Автор Тема: Delegate в C#  (Прочитано 2526 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1188
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
Delegate в C#
« : 31-03-2017, 01:35:31 »
Подскажите.
Есть к примеру, класс и делегат.
Код - C# [Выбрать]
  1.     delegate void MyDelegate(int cnt);
  2.     class MyClass  {
  3.         public event MyDelegate ChangeCount;  
  4.         private int Count;
  5.         public void move() {
  6.             Count++;
  7.             if (ChangeCount != null)
  8.                 ChangeCount(Count);
  9.         }
  10.     }

Код - C# [Выбрать]
  1.     class TestApp {
  2.         // обработчик события
  3.         public static void onChangeCount(int cnt)  {
  4.            if (cnt > 4)
  5.                 Console.WriteLine(cnt + " - это более допустимого знечения.");
  6.         }
  7.         public static void Main()
  8.         {
  9.         }
  10.     }

Какая разница между двумя примерами рализации кода функции Main?

Пример 1:
Код - C# [Выбрать]
  1.             MyDelegate deleg = new MyDelegate(onChangeCount);
  2.             MyClass Obj = new MyClass();
  3.             Obj.ChangeCount += deleg;  
  4.             Obj.move();

Пример 2:
Код - C# [Выбрать]
  1.              MyClass Obj = new MyClass();
  2.              Obj.ChangeCount += onChangeCount;
  3.              Obj.move();

Ведь оба примера работают.