2. В цьому модулі:
Що таке generics?
Необхідність використання generics
Створення generic класів
Порівняльний аналіз generic класів і класів колекцій
Використання обмежень
Створення generic інтерфейсів
Створення generic делегатів
Створення generic методів
Що таке ітератор
Синтаксис, приклади використання ітераторів
2
Andrii Hladkyi
trilobt@gmail.com
3. Що таке generics?
Generics – універсальні або параметризовані типи, які
дозволяють при описі класів, структур, методів і інтерфейсів
використовувати параметризовані параметри (не вказувати тип
параметра в момент написання коду).
Тип параметра визначається в момент оголошення змінної
відповідного типу.
Таким чином можна створити загальний елемент.
Andrii Hladkyi
trilobt@gmail.com 3
4. Необхідність використання generics
Повторне використання коду. Немає необхідності
створювати два ідентичних класи, які відрізняються
лише типами параметрів.
Для підвищення продуктивності коду по порівнянню з
використанням параметрів типу object – немає
необхідності виконувати приведення типів
Перевірка типів в момент компіляції програми.
Andrii Hladkyi
trilobt@gmail.com 4
5. Створення generic класів
При створені generic класів параметр типу вказується в
трикутних дужках після імені класу.
Узагальнених параметрів типу може бути декілька.
Для встановлення значень за замовчувань змінним
узагальненого типу використовується вираз Default(T). При
цьому значення типу посилань встановлюються в null, а
структурних в 0.
Правила наслідування від generic класів:
◦ Якщо від generic класу наслідується не узагальнений, клас
наслідник повинен конкретизувати параметр типу
◦ При реалізації generic віртуальних методів похідний
неузагальнений клас повинен конкретизувати параметр типу
◦ Якщо від generic класу наслідується інший generic клас, в ньому
потрібно враховувати обмеження типу, що вказаний в базовому
класі
Andrii Hladkyi
trilobt@gmail.com 5
9. Використання обмежень
Для параметра типу можна вказати обмеження, що вказують, яким
вимогам повинен відповідати тип даних, що використовується замість
даного параметра
Синтаксис оголошення обмеження
Andrii Hladkyi
trilobt@gmail.com 9
class ім’яКласа<T> where T : обмеження
11. Створення generic інтерфейсів
При створенні інтерфейсів, та як при створені класів, можна
використовувати узагальнені типи параметрів.
Необхідно створити generic клас, в якому буде міститись колекція
даних узагальненого типу, і в цьому класі реалізувати метод, який
повинен повертати суму елементів колекції. Сума повинна бути того
типу, що і типи даних в колекції. Для того щоб елементи в колекції
можна було б сумувати потрібно створити інтерфейс, що містить
метод обрахунку суми, і вказати даний інтерфейс в якості обмеження
для параметра типу.
Andrii Hladkyi
trilobt@gmail.com 11
14. Andrii Hladkyi
trilobt@gmail.com 14
Створити узагальнений клас прямої на площині. В класі передбачити два
поля типу узагальненої точки – точки, через які проходить пряма.
Реалізувати в класі:
• Конструктор, який приймає 4 координати (координати для 1-ї і 2-ї
точки)
• метод ToString()