Created
November 8, 2025 11:56
-
-
Save sunmeat/607be93bf0e3b8ae8af3179c68d0e68a to your computer and use it in GitHub Desktop.
ДЗ на тему generics, collections, garbage collecting для групи СПР411
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Створіть generic клас Spellbook<T>, де T — тип заклинання, що реалізує інтерфейс ISpell з методами Cast() та GetPower(). | |
| Застосуйте комбіновані constraints: where T : ISpell, new(), IComparable<T> для сортування заклинань за силою, і додайте | |
| метод LearnSpell(), що додає нові заклинання з перевіркою на унікальність через IComparable. | |
| У Main() створіть Spellbook з вигаданими заклинаннями (клас Fireball та HealingWave, обидва з ISpell), або по Гарі Потеру. | |
| вивчіть 5 заклинань, відсортуйте та симулюйте кастування найсильнішого, виводячи ефекти. | |
| Додайте умовні constraints через where T : class для "темних" заклять (з додатковим інтерфейсом IDarkMagic), і метод InvokeRitual(), | |
| що комбінує заклинання лише якщо всі T задовольняють IDarkMagic, інакше кидає виняток. Тестуйте з мішаними типами в окремій Spellbook<DarkSpell>. | |
| =========================================================================================== | |
| альтернативно, можна показати використання узагальнень в вашому фінальному проєкті. | |
| =========================================================================================== | |
| альтернативно | |
| Скласти невеликий гіст-документ, в якому словами буде прописано, в яких випадках треба обрати ту чи іншу генеричну колекцію List<T>, | |
| HashSet<T>, SortedSet<T>, LinkedList<T>, Dictionary<K,V>, SortedDictionary<K,V>, SortedList<K,V> посилання на гіст надіслати | |
| як коментар до цього ДЗ. | |
| =========================================================================================== | |
| альтернативно | |
| скласти статтю про плани покращення збирача сміття в .Net 10 (який виходить 11 листопада). | |
| приклад статті: https://gist.github.com/sunmeat/e1785c0561ca78e5415ca29a632987fc | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment