SlideShare a Scribd company logo
.NET Framework і C#
Модуль 12 Делегати, події
В цьому модулі:
 Поняття делегата
 Синтаксис оголошення делегата
 Цілі і задачі делегата
 Виклик декілька методів через делегат
 Виклик декількох методів через делегат (multicasting)
 Базовий клас для делегатів
◦ System.Delegate
◦ System.MulticastDelegate
 Події
 Поняття події
 Синтаксис оголошення подій
 Необхідність і особливість використання подій
 Використання подій для багато адресного делегата
 Використання подійних засобів доступу
 Анонімні методи
2
Andriy Gladkyy
KspDevelop@gmail.com
Поняття делегата
 Делегат – це об’єкт який може посилатись на метод.
Делегат може зберігати посилання на метод і з його
допомогою викликати даний метод. Технічно делегат
- це тип посилання, якій інкапсолює метод з
вказаною сигнатурою і типом повернення.
Andriy Gladkyy
KspDevelop@gmail.com 3
Синтаксис оголошення делегата
 Для оголошення делегата використовується ключове слова delegate.
 Type – тип повернення
 DelegateName – ім’я делегата
 List - список параметрів, необхідних методам при виклику їх за
допомогою делегата.
 Делегат може викликати як методи екземплярів класу так і
статичні методи
 Делегат може приймати один з п’яти модифікаторів доступу
Andriy Gladkyy
KspDevelop@gmail.com 4
delegate Type DelegateName (List)
Andriy Gladkyy
KspDevelop@gmail.com 5
Демонстрація
Цілі і задачі делегата
 Делегати використовуються в наступних
випадках:
◦ При паралельному запуску декількох операцій одночасно
◦ При роботі з графічним інтерфейсом користувача
використовуються події. Ми заздалегідь не знаємо, які діє
виконає користувач і відповідно які методи потрібно
викликати
 Делегат дозволяє визначити, який метод
потрібно викликати не на етапі компіляції а
на етапі виконання.
Andriy Gladkyy
KspDevelop@gmail.com 6
Andriy Gladkyy
KspDevelop@gmail.com 7
Демонстрація
Виклик декількох методів через делегат (multicasting)
 Коли необхідно викликати з одного делегата два чи
більше методів.
 Для реалізації множинного делегування делегат
повинен повертати тип void.
 Додавання методів до списку викликів делегата
виконуються за допомогою операції +=
 Видалення методів із списку викликів виконується за
допомогою операції -=
 Об’єднати делегати можна за допомогою операції +.
Отримаємо новий делегат, який буде викликати
методи об’єднаних делегатів
Andriy Gladkyy
KspDevelop@gmail.com 8
Andriy Gladkyy
KspDevelop@gmail.com 9
Демонстрація
Розглянемо клас Circle, в якому описані чотири методи, які виводять в на
консоль радіус, діаметр, довжину окружності, площу кола
Базові класи для делегатів
 System.Delegate являється базовим для типів делегатів. Однак лише система
і компілятор можуть явно наслідувати класи Delegate і MulticastDelegate.
Також не можна створити
Andriy Gladkyy
KspDevelop@gmail.com 10
Andriy Gladkyy
KspDevelop@gmail.com 11
 System.MulticastDelegate. Будь який клас делегат наслідує
System.MulticastDelegate. Це пояснює багато адресність
делегатів: в ході виконання додатка об’єкт делегат здатний
запам’ятати посилання на різну кількість методів не залежно
від їхньої статичності, не статичності чи приналежності
класам.
 Багато адресність забезпечується внутрішнім списком, в якому
зберігаються посилання на методи, що відповідають заданій
сигнатурі і специфікації типу повернення.
Andriy Gladkyy
KspDevelop@gmail.com 12
Поняття події
 Подія – це повідомлення про виникнення деякої дії.
Це може бути натиснення на кнопку, вибір елементу
із списку і т.д.
 Відправником події може бути будь який компонент
форми, або сам додаток.
 Відправник – це об’єкт, який генерує подію.
Отримати повідомлення про подію може будь який
інший об’єкт, якому це потрібно.
Andriy Gladkyy
KspDevelop@gmail.com 13
Поняття події
 Для того щоб об’єкт знав про виникнення даної
події, його потрібно підписати на цю подію.
Потрібно задати метод обробник даної події.
 Для реалізації події використовуються делегати.
Об’єкт відправник визначає делегат, а кожний об’єкт
отримувач додає свій метод обробник ланцюжок
посилань делегата. Виклик ланцюжка методів
здійснює об’єкт відправник, ініціює виконання всіх
методів.
Andriy Gladkyy
KspDevelop@gmail.com 14
Синтаксис оголошення події
 Для оголошення події використовується ключове слово event.
 DelegateName – ім’я використовуваного делегата
 EventName – ім’я події
 Якщо на подію немає підписаних обробників, то вона має значення
null, а її виклик викликає помилку виконання. Існує домовленість, по
якій делегати обробники подій повертають тип void і мають два
параметри. Перший - об’єкт відправник тип object, а другий – об’єкт,
що містить інформацію і параметри події, похідний від класу
EventArgs.
 Розглянемо клас Person, який має метод Work() і подію, яка немає
параметрів, WorkEnded, що інформує про завершення виконання
роботи.
Andriy Gladkyy
KspDevelop@gmail.com 15
event DelegateName EventName;
Andriy Gladkyy
KspDevelop@gmail.com 16
Демонстрація
Необхідність і особливість використання подій
 Головним плюсом подій є те, що вони дозволяють
зробити об’єкт відправник і об’єкт отримувач
незалежними один від одного, так як вони розділені
делегатом. Це робить код більш гнучким, дозволяє
розробнику змінювати реакцію на подію, додавати
нових підписників.
Andriy Gladkyy
KspDevelop@gmail.com 17
Застосування подій для багато адресного делегата
 Одна подія може активізувати декілька обробників, навіть якщо
вини оголошені в інших об’єктах.
Створимо клас Ticker, його метод RunTicker() генерує подію
TickEvent кожні 10 мс.
Andriy Gladkyy
KspDevelop@gmail.com 18
Andriy Gladkyy
KspDevelop@gmail.com 19
Демонстрація
Використання подійних засобів доступу
 В C# існує форма event-інструкцій, яка дозволяє
використовувати засоби доступу до подій. Ці засоби доступу
дають можливість керувати реалізацією списком обробників
подій.
Andriy Gladkyy
KspDevelop@gmail.com 20
even nameDelegate nameEvent
{
add { //Код додання подій в список подій }
remove { //Код видалення подій із списку подій }
}
Анонімні методи
 Анонімний метод – це блок коду, який приймає в
якості параметра делегат. Він має “заголовок”, який
містить ключове слово delegate і список параметрів
анонімного методу.
 При обробці подій також можна використовувати
анонімні методи.
Andriy Gladkyy
KspDevelop@gmail.com 21
Andriy Gladkyy
KspDevelop@gmail.com 22
Демонстрація
Andriy Gladkyy
KspDevelop@gmail.com 23
Реалізувати метод, який здійснює пошук елемента в
масиві. Метод повинен приймати масив Object[] array,
в якому повинен здійснюватись пошук, і делегат, що
визначає чи являється елемент шуканим

More Related Content

Viewers also liked

Uml module 5
Uml module 5Uml module 5
Uml module 5
Andrii Hladkyi
 
Net framework і c# module 7_old
Net framework і c# module 7_oldNet framework і c# module 7_old
Net framework і c# module 7_old
Andrii Hladkyi
 
Uml module 6
Uml module 6Uml module 6
Uml module 6
Andrii Hladkyi
 
Prototype Design Pattern
Prototype Design PatternPrototype Design Pattern
Prototype Design Pattern
melbournepatterns
 
Net framework і c# lesson1
Net framework і c# lesson1Net framework і c# lesson1
Net framework і c# lesson1
Andrii Hladkyi
 
Prototype Pattern
Prototype PatternPrototype Pattern
Prototype Pattern
Ider Zheng
 
Design pattern module 1
Design pattern module 1Design pattern module 1
Design pattern module 1
Andrii Hladkyi
 

Viewers also liked (7)

Uml module 5
Uml module 5Uml module 5
Uml module 5
 
Net framework і c# module 7_old
Net framework і c# module 7_oldNet framework і c# module 7_old
Net framework і c# module 7_old
 
Uml module 6
Uml module 6Uml module 6
Uml module 6
 
Prototype Design Pattern
Prototype Design PatternPrototype Design Pattern
Prototype Design Pattern
 
Net framework і c# lesson1
Net framework і c# lesson1Net framework і c# lesson1
Net framework і c# lesson1
 
Prototype Pattern
Prototype PatternPrototype Pattern
Prototype Pattern
 
Design pattern module 1
Design pattern module 1Design pattern module 1
Design pattern module 1
 

Similar to Net framework і c# module 12

Net framework і c# module 8
Net framework і c# module 8Net framework і c# module 8
Net framework і c# module 8
Andrii Hladkyi
 
лаб. роб. №2 обєкти та сервіси що ними надаються
лаб. роб. №2   обєкти та сервіси що ними надаютьсялаб. роб. №2   обєкти та сервіси що ними надаються
лаб. роб. №2 обєкти та сервіси що ними надаються
cit-cit
 
Net Framework and c# module 2. OOP
Net Framework and c# module 2. OOPNet Framework and c# module 2. OOP
Net Framework and c# module 2. OOP
Andrii Hladkyi
 
Net framework і c# module 4
Net framework і c# module 4Net framework і c# module 4
Net framework і c# module 4
Andrii Hladkyi
 
System programing module 1
System programing module 1System programing module 1
System programing module 1
Andrii Hladkyi
 
Net framework і c# module 15
Net framework і c# module 15Net framework і c# module 15
Net framework і c# module 15
Andrii Hladkyi
 
"Distributed graphs and microservices in Prom.ua", Maksym Kindritskyi
"Distributed graphs and microservices in Prom.ua",  Maksym Kindritskyi"Distributed graphs and microservices in Prom.ua",  Maksym Kindritskyi
"Distributed graphs and microservices in Prom.ua", Maksym Kindritskyi
Fwdays
 
System programing module 2
System programing module 2System programing module 2
System programing module 2
Andrii Hladkyi
 
Lec12 користувацькi елементи керування ed
Lec12 користувацькi елементи керування edLec12 користувацькi елементи керування ed
Lec12 користувацькi елементи керування ed
cit-cit
 
Net framework і c# module 10
Net framework і c# module 10Net framework і c# module 10
Net framework і c# module 10
Andrii Hladkyi
 
презентація поняття події
презентація   поняття подіїпрезентація   поняття події
презентація поняття події
Olga Sokolik
 
ASP.NET Core лекція 02.pptx
ASP.NET Core лекція 02.pptxASP.NET Core лекція 02.pptx
ASP.NET Core лекція 02.pptx
Ihor34
 
Patterns.pptx
Patterns.pptxPatterns.pptx
Patterns.pptx
ssuser1ce94b
 
Лекція №12 Передача параметрів у функцію.pptx
Лекція №12 Передача параметрів у функцію.pptxЛекція №12 Передача параметрів у функцію.pptx
Лекція №12 Передача параметрів у функцію.pptx
ssuserf57884
 
Design pattern module 1
Design pattern module 1Design pattern module 1
Design pattern module 1
Andrii Hladkyi
 
Інформатика 8 клас
Інформатика 8 клас Інформатика 8 клас
Інформатика 8 клас
PRESLAVA1972
 
Net framework і c# module 11
Net framework і c# module 11Net framework і c# module 11
Net framework і c# module 11
Andrii Hladkyi
 
Net framework і c# module 16
Net framework і c# module 16Net framework і c# module 16
Net framework і c# module 16
Andrii Hladkyi
 
Using Metatags in Flex Developing
Using Metatags in Flex DevelopingUsing Metatags in Flex Developing
Using Metatags in Flex DevelopingRoman Shuper
 

Similar to Net framework і c# module 12 (20)

Net framework і c# module 8
Net framework і c# module 8Net framework і c# module 8
Net framework і c# module 8
 
лаб. роб. №2 обєкти та сервіси що ними надаються
лаб. роб. №2   обєкти та сервіси що ними надаютьсялаб. роб. №2   обєкти та сервіси що ними надаються
лаб. роб. №2 обєкти та сервіси що ними надаються
 
Net Framework and c# module 2. OOP
Net Framework and c# module 2. OOPNet Framework and c# module 2. OOP
Net Framework and c# module 2. OOP
 
Net framework і c# module 4
Net framework і c# module 4Net framework і c# module 4
Net framework і c# module 4
 
System programing module 1
System programing module 1System programing module 1
System programing module 1
 
ASP.Net MVC
ASP.Net MVCASP.Net MVC
ASP.Net MVC
 
Net framework і c# module 15
Net framework і c# module 15Net framework і c# module 15
Net framework і c# module 15
 
"Distributed graphs and microservices in Prom.ua", Maksym Kindritskyi
"Distributed graphs and microservices in Prom.ua",  Maksym Kindritskyi"Distributed graphs and microservices in Prom.ua",  Maksym Kindritskyi
"Distributed graphs and microservices in Prom.ua", Maksym Kindritskyi
 
System programing module 2
System programing module 2System programing module 2
System programing module 2
 
Lec12 користувацькi елементи керування ed
Lec12 користувацькi елементи керування edLec12 користувацькi елементи керування ed
Lec12 користувацькi елементи керування ed
 
Net framework і c# module 10
Net framework і c# module 10Net framework і c# module 10
Net framework і c# module 10
 
презентація поняття події
презентація   поняття подіїпрезентація   поняття події
презентація поняття події
 
ASP.NET Core лекція 02.pptx
ASP.NET Core лекція 02.pptxASP.NET Core лекція 02.pptx
ASP.NET Core лекція 02.pptx
 
Patterns.pptx
Patterns.pptxPatterns.pptx
Patterns.pptx
 
Лекція №12 Передача параметрів у функцію.pptx
Лекція №12 Передача параметрів у функцію.pptxЛекція №12 Передача параметрів у функцію.pptx
Лекція №12 Передача параметрів у функцію.pptx
 
Design pattern module 1
Design pattern module 1Design pattern module 1
Design pattern module 1
 
Інформатика 8 клас
Інформатика 8 клас Інформатика 8 клас
Інформатика 8 клас
 
Net framework і c# module 11
Net framework і c# module 11Net framework і c# module 11
Net framework і c# module 11
 
Net framework і c# module 16
Net framework і c# module 16Net framework і c# module 16
Net framework і c# module 16
 
Using Metatags in Flex Developing
Using Metatags in Flex DevelopingUsing Metatags in Flex Developing
Using Metatags in Flex Developing
 

More from Andrii Hladkyi

Net framework and C# module 17. Serialization
Net framework and  C# module 17. SerializationNet framework and  C# module 17. Serialization
Net framework and C# module 17. Serialization
Andrii Hladkyi
 
NET Framework and C# Module 6.2. Generics
NET Framework and C# Module 6.2. GenericsNET Framework and C# Module 6.2. Generics
NET Framework and C# Module 6.2. Generics
Andrii Hladkyi
 
Net Framework and c# Lesson 1
Net Framework and c# Lesson 1Net Framework and c# Lesson 1
Net Framework and c# Lesson 1
Andrii Hladkyi
 
Wpf module 2
Wpf module 2Wpf module 2
Wpf module 2
Andrii Hladkyi
 
Wpf module 1
Wpf module 1Wpf module 1
Wpf module 1
Andrii Hladkyi
 
Msp module 3
Msp module 3Msp module 3
Msp module 3
Andrii Hladkyi
 
Msp module 2
Msp module 2Msp module 2
Msp module 2
Andrii Hladkyi
 
Msp module 1
Msp module 1Msp module 1
Msp module 1
Andrii Hladkyi
 
Ado.net module 2
Ado.net module 2Ado.net module 2
Ado.net module 2
Andrii Hladkyi
 
Ado.net module 1
Ado.net module 1Ado.net module 1
Ado.net module 1
Andrii Hladkyi
 
Win api module_2.0_gdi+
Win api module_2.0_gdi+Win api module_2.0_gdi+
Win api module_2.0_gdi+
Andrii Hladkyi
 
Win api module_1.1_ok
Win api module_1.1_okWin api module_1.1_ok
Win api module_1.1_ok
Andrii Hladkyi
 
Win api module_6.2
Win api module_6.2Win api module_6.2
Win api module_6.2
Andrii Hladkyi
 
Uml module 4
Uml module 4Uml module 4
Uml module 4
Andrii Hladkyi
 
Uml module 3
Uml module 3Uml module 3
Uml module 3
Andrii Hladkyi
 
Uml module 2
Uml module 2Uml module 2
Uml module 2
Andrii Hladkyi
 
Uml module 1
Uml module 1Uml module 1
Uml module 1
Andrii Hladkyi
 
System programing module 3
System programing module 3System programing module 3
System programing module 3
Andrii Hladkyi
 

More from Andrii Hladkyi (18)

Net framework and C# module 17. Serialization
Net framework and  C# module 17. SerializationNet framework and  C# module 17. Serialization
Net framework and C# module 17. Serialization
 
NET Framework and C# Module 6.2. Generics
NET Framework and C# Module 6.2. GenericsNET Framework and C# Module 6.2. Generics
NET Framework and C# Module 6.2. Generics
 
Net Framework and c# Lesson 1
Net Framework and c# Lesson 1Net Framework and c# Lesson 1
Net Framework and c# Lesson 1
 
Wpf module 2
Wpf module 2Wpf module 2
Wpf module 2
 
Wpf module 1
Wpf module 1Wpf module 1
Wpf module 1
 
Msp module 3
Msp module 3Msp module 3
Msp module 3
 
Msp module 2
Msp module 2Msp module 2
Msp module 2
 
Msp module 1
Msp module 1Msp module 1
Msp module 1
 
Ado.net module 2
Ado.net module 2Ado.net module 2
Ado.net module 2
 
Ado.net module 1
Ado.net module 1Ado.net module 1
Ado.net module 1
 
Win api module_2.0_gdi+
Win api module_2.0_gdi+Win api module_2.0_gdi+
Win api module_2.0_gdi+
 
Win api module_1.1_ok
Win api module_1.1_okWin api module_1.1_ok
Win api module_1.1_ok
 
Win api module_6.2
Win api module_6.2Win api module_6.2
Win api module_6.2
 
Uml module 4
Uml module 4Uml module 4
Uml module 4
 
Uml module 3
Uml module 3Uml module 3
Uml module 3
 
Uml module 2
Uml module 2Uml module 2
Uml module 2
 
Uml module 1
Uml module 1Uml module 1
Uml module 1
 
System programing module 3
System programing module 3System programing module 3
System programing module 3
 

Net framework і c# module 12

  • 1. .NET Framework і C# Модуль 12 Делегати, події
  • 2. В цьому модулі:  Поняття делегата  Синтаксис оголошення делегата  Цілі і задачі делегата  Виклик декілька методів через делегат  Виклик декількох методів через делегат (multicasting)  Базовий клас для делегатів ◦ System.Delegate ◦ System.MulticastDelegate  Події  Поняття події  Синтаксис оголошення подій  Необхідність і особливість використання подій  Використання подій для багато адресного делегата  Використання подійних засобів доступу  Анонімні методи 2 Andriy Gladkyy KspDevelop@gmail.com
  • 3. Поняття делегата  Делегат – це об’єкт який може посилатись на метод. Делегат може зберігати посилання на метод і з його допомогою викликати даний метод. Технічно делегат - це тип посилання, якій інкапсолює метод з вказаною сигнатурою і типом повернення. Andriy Gladkyy KspDevelop@gmail.com 3
  • 4. Синтаксис оголошення делегата  Для оголошення делегата використовується ключове слова delegate.  Type – тип повернення  DelegateName – ім’я делегата  List - список параметрів, необхідних методам при виклику їх за допомогою делегата.  Делегат може викликати як методи екземплярів класу так і статичні методи  Делегат може приймати один з п’яти модифікаторів доступу Andriy Gladkyy KspDevelop@gmail.com 4 delegate Type DelegateName (List)
  • 6. Цілі і задачі делегата  Делегати використовуються в наступних випадках: ◦ При паралельному запуску декількох операцій одночасно ◦ При роботі з графічним інтерфейсом користувача використовуються події. Ми заздалегідь не знаємо, які діє виконає користувач і відповідно які методи потрібно викликати  Делегат дозволяє визначити, який метод потрібно викликати не на етапі компіляції а на етапі виконання. Andriy Gladkyy KspDevelop@gmail.com 6
  • 8. Виклик декількох методів через делегат (multicasting)  Коли необхідно викликати з одного делегата два чи більше методів.  Для реалізації множинного делегування делегат повинен повертати тип void.  Додавання методів до списку викликів делегата виконуються за допомогою операції +=  Видалення методів із списку викликів виконується за допомогою операції -=  Об’єднати делегати можна за допомогою операції +. Отримаємо новий делегат, який буде викликати методи об’єднаних делегатів Andriy Gladkyy KspDevelop@gmail.com 8
  • 9. Andriy Gladkyy KspDevelop@gmail.com 9 Демонстрація Розглянемо клас Circle, в якому описані чотири методи, які виводять в на консоль радіус, діаметр, довжину окружності, площу кола
  • 10. Базові класи для делегатів  System.Delegate являється базовим для типів делегатів. Однак лише система і компілятор можуть явно наслідувати класи Delegate і MulticastDelegate. Також не можна створити Andriy Gladkyy KspDevelop@gmail.com 10
  • 12.  System.MulticastDelegate. Будь який клас делегат наслідує System.MulticastDelegate. Це пояснює багато адресність делегатів: в ході виконання додатка об’єкт делегат здатний запам’ятати посилання на різну кількість методів не залежно від їхньої статичності, не статичності чи приналежності класам.  Багато адресність забезпечується внутрішнім списком, в якому зберігаються посилання на методи, що відповідають заданій сигнатурі і специфікації типу повернення. Andriy Gladkyy KspDevelop@gmail.com 12
  • 13. Поняття події  Подія – це повідомлення про виникнення деякої дії. Це може бути натиснення на кнопку, вибір елементу із списку і т.д.  Відправником події може бути будь який компонент форми, або сам додаток.  Відправник – це об’єкт, який генерує подію. Отримати повідомлення про подію може будь який інший об’єкт, якому це потрібно. Andriy Gladkyy KspDevelop@gmail.com 13
  • 14. Поняття події  Для того щоб об’єкт знав про виникнення даної події, його потрібно підписати на цю подію. Потрібно задати метод обробник даної події.  Для реалізації події використовуються делегати. Об’єкт відправник визначає делегат, а кожний об’єкт отримувач додає свій метод обробник ланцюжок посилань делегата. Виклик ланцюжка методів здійснює об’єкт відправник, ініціює виконання всіх методів. Andriy Gladkyy KspDevelop@gmail.com 14
  • 15. Синтаксис оголошення події  Для оголошення події використовується ключове слово event.  DelegateName – ім’я використовуваного делегата  EventName – ім’я події  Якщо на подію немає підписаних обробників, то вона має значення null, а її виклик викликає помилку виконання. Існує домовленість, по якій делегати обробники подій повертають тип void і мають два параметри. Перший - об’єкт відправник тип object, а другий – об’єкт, що містить інформацію і параметри події, похідний від класу EventArgs.  Розглянемо клас Person, який має метод Work() і подію, яка немає параметрів, WorkEnded, що інформує про завершення виконання роботи. Andriy Gladkyy KspDevelop@gmail.com 15 event DelegateName EventName;
  • 17. Необхідність і особливість використання подій  Головним плюсом подій є те, що вони дозволяють зробити об’єкт відправник і об’єкт отримувач незалежними один від одного, так як вони розділені делегатом. Це робить код більш гнучким, дозволяє розробнику змінювати реакцію на подію, додавати нових підписників. Andriy Gladkyy KspDevelop@gmail.com 17
  • 18. Застосування подій для багато адресного делегата  Одна подія може активізувати декілька обробників, навіть якщо вини оголошені в інших об’єктах. Створимо клас Ticker, його метод RunTicker() генерує подію TickEvent кожні 10 мс. Andriy Gladkyy KspDevelop@gmail.com 18
  • 20. Використання подійних засобів доступу  В C# існує форма event-інструкцій, яка дозволяє використовувати засоби доступу до подій. Ці засоби доступу дають можливість керувати реалізацією списком обробників подій. Andriy Gladkyy KspDevelop@gmail.com 20 even nameDelegate nameEvent { add { //Код додання подій в список подій } remove { //Код видалення подій із списку подій } }
  • 21. Анонімні методи  Анонімний метод – це блок коду, який приймає в якості параметра делегат. Він має “заголовок”, який містить ключове слово delegate і список параметрів анонімного методу.  При обробці подій також можна використовувати анонімні методи. Andriy Gladkyy KspDevelop@gmail.com 21
  • 23. Andriy Gladkyy KspDevelop@gmail.com 23 Реалізувати метод, який здійснює пошук елемента в масиві. Метод повинен приймати масив Object[] array, в якому повинен здійснюватись пошук, і делегат, що визначає чи являється елемент шуканим