Цей набір питань підготовлено для самостійної підготовки студентів до іспиту з C#.
Викладач на іспиті може ставити питання з цього списку, а також будь-які інші питання з предмету.
Мета списку — допомогти студенту в актуалізації своїх знань з предмету.
- Що таке керований (managed) код?
- Що таке некерований (unmanaged) код?
- Яка різниця між керованим (managed) і некерованим (unmanaged) кодом?
- Яка різниця між .NET Framework, .NET Core, .NET Standard?
- Що таке CLR?
- Що таке Common Type System (CTS)?
- Що таке Common Language Specification (CLS)?
- C# — це компільована чи інтерпретована мова?
- Що таке Microsoft Intermediate Language (MSIL)?
- Що таке рефлектор?
- Що таке обфускатор/дотфускатор?
- Що таке типи-значення (value types)?
- Що таке посилальні типи (reference types)?
- Яка різниця між value types і reference types?
- Що таке упаковка (boxing) і розпаковка (unboxing)?
- Що таке збирання сміття?
- Поясніть базові принципи роботи збирача сміття (garbage collector)
- Яка різниця між класами String і StringBuilder?
- String — це value type чи reference type?
- Масив — це value type чи reference type?
- Що таке Nullable-типи?
- Що таке Top Level Statements?
- Що таке інкапсуляція? Наведіть приклад інкапсуляції з повсякденного життя, без використання будь-яких понять з області програмування
- Що таке поліморфізм? Наведіть приклад поліморфізму з повсякденного життя, без використання будь-яких понять з області програмування
- Що таке успадкування? Наведіть приклад успадкування з повсякденного життя, без використання будь-яких понять з області програмування
- Що таке клас? Що таке об’єкт? Яка різниця між класом і об’єктом?
- Які специфікатори доступу є в C#? Яка між ними різниця?
- Що таке конструктор? Які цілі та завдання у конструктора класу?
- Що таке перевантажений конструктор класу? Як створити перевантажений конструктор класу?
- Що таке метод класу?
- Що таке поле класу?
- Що таке перевантажений метод класу?
- Чи можна перевантажити метод класу на основі значення, що повертається?
- Що таке статичний конструктор класу?
- Що таке ключове слово this? Для яких цілей воно використовується?
- Коли потрібно використовувати ref-параметри методів?
- Коли потрібно використовувати out-параметри методів?
- У чому різниця між ref- і out-параметрами методів?
- Що таке рекурсія? Коли її необхідно використовувати? У чому її потенційна небезпека?
- Як створити метод зі змінною кількістю параметрів?
- Наведіть приклад, коли необхідно створити метод зі змінною кількістю параметрів
- Що таке статичне поле класу?
- Що таке статичний метод класу?
- У чому різниця між статичним методом класу і звичайним методом класу?
- Що таке деконструктор?
- Що таке виняток?
- Для яких цілей використовується ключове слово try?
- Для яких цілей використовується ключове слово catch?
- Для яких цілей використовується ключове слово finally?
- Для яких цілей використовується ключове слово throw?
- Поясніть, як працює механізм вкладених один в одного блоків try
- Для яких цілей використовуються простори імен?
- Коли може знадобитися створити вкладений простір імен?
- Що таке перевантаження операторів?
- Для яких цілей потрібно використовувати перевантаження операторів?
- Наведіть приклад вдалого і невдалого перевантаження операторів
- Чим відрізняються одне від одного перевантаження унарних і бінарних операторів?
- Для яких цілей створюють користувацькі індексатори?
- Що таке властивість?
- Для яких цілей використовуються ключові слова get, set, init у властивостях?
- У чому відмінність звичайних властивостей і автоматичних?
- Що таке успадкування?
- Який порядок запуску конструкторів при успадкуванні?
- Чому в C# відсутнє множинне успадкування від класів?
- Які завдання вирішує ключове слово sealed?
- Які завдання вирішує ключове слово base?
- Як працює приховування імен при успадкуванні
- Що таке віртуальний метод?
- Для чого використовуються віртуальні методи?
- У чому відмінність віртуального і звичайного методу?
- Що таке абстрактний клас?
- У чому відмінність абстрактного і звичайного класу?
- Навіщо потрібно використовувати абстрактні класи?
- Що таке упаковка?
- Що таке розпаковка?
- Коли необхідно використовувати упаковку і розпаковку?
- Які мінуси і плюси використання упаковки і розпаковки?
- Що таке інтерфейс? Цілі та завдання інтерфейсів?
- У чому відмінність інтерфейсів і абстрактних класів?
- Чому в C# немає множинного успадкування від класів?
- У чому відмінність класів і структур?
- Наведіть приклади обґрунтованого використання структур
- Для яких цілей використовуються Nullable-типи?
- Що таке делегат? Цілі та завдання делегатів
- Що таке подія? Цілі та завдання подій
- У чому відмінність подій і делегатів?
- Що таке анонімний метод?
- Що таке лямбда-вираз?
- Для яких цілей використовуються extension-методи?
- Коли необхідно використовувати записи (records)?
- Коли необхідно використовувати generics?
- У якому випадку потрібно використовувати той чи інший клас колекції
- Поясніть принцип роботи збирача сміття
- Як використовується поняття покоління при збиранні сміття?
- Що таке метод Finalize?
- Для яких цілей потрібно імплементувати інтерфейс IDisposable?
- Що таке LINQ? Які цілі та завдання у LINQ?
- Коли потрібно використовувати групування і сортування в LINQ?