OOP Course
Сьогодні

Підрозділ 2.16

Методи

Пояснює методи як іменовані блоки коду, їх оголошення, виклик, скорочений синтаксис і роль у структуруванні програми.

2.16. Методи

Якщо змінна зберігає значення, то метод зберігає поведінку — іменований блок коду, що виконує певні дії. Методи дозволяють структурувати програму: замість того щоб копіювати одну й ту саму логіку в різних місцях, її записують один раз у методі, а потім викликають скільки завгодно разів звідусіль.

Насправді методи вже зустрічалися нам із самого початку: Console.WriteLine() — це метод, визначений у класі Console. Тепер розглянемо, як створювати власні методи.

Синтаксис визначення методу

Загальний синтаксис оголошення методу такий:

[модифікатори] тип_результату НазваМетоду([параметри])
{
    // тіло методу
}

Анатомія методу: тип результату, назва, параметри, тіло

  • Тип результату — тип значення, яке метод повертає після виконання. Якщо метод нічого не повертає, вказується void.
  • Назва методу — ідентифікатор за тими самими правилами, що й назви змінних. За угодою C# методи іменуються з великої літери (PascalCase): PrintDiagnosis, GetPatientAge, RegisterVisit.
  • Параметри — вхідні дані, які метод отримує при виклику (розглядаються в розділі 2.17). Якщо параметрів немає — дужки залишаються порожніми.
  • Тіло — блок інструкцій у фігурних дужках, що виконуються при кожному виклику методу.
  • Модифікатори необов'язкові; їх призначення розглядається в наступних розділах при вивченні класів і ООП.

Метод типу void

Найпростіший варіант — метод, що виконує дії, але нічого не повертає. Тип результату для таких методів — void:

Тут PrintWelcome — метод без параметрів і без значення, що повертається. У його тілі дві інструкції виведення. Виклик PrintWelcome() виконує обидві.

Важливо: визначення методу (блок коду з іменем і тілом) не виконує його автоматично. Для виконання необхідний виклик — рядок із назвою методу та круглими дужками.

Виклик методів

Для виклику методу вказується його назва та круглі дужки зі значеннями параметрів (якщо вони є). Якщо параметрів немає — дужки залишаються порожніми:

НазваМетоду();

Головна перевага методів — повторне використання: один і той самий метод можна викликати будь-яку кількість разів у будь-якому місці програми:

Зверніть увагу: PrintHeader сам викликає PrintSeparator двічі всередині свого тіла. Методи можуть викликати інші методи — це дозволяє ієрархічно структурувати код.

Порядок розташування визначення методу та його виклику не має значення: виклик може передувати визначенню, і програма все одно спрацює коректно. Компілятор C# аналізує весь файл перед виконанням, тому всі методи відомі йому ще до того, як до них доходить виконання.

Кілька методів із умовним вибором

Програма може оголошувати будь-яку кількість методів і викликати потрібний залежно від умови. Це дозволяє чітко розподілити відповідальність між різними ділянками коду:

Кожен метод відповідає за одну конкретну дію — виведення відповідного повідомлення. Логіка вибору знаходиться окремо, у конструкції if...else. Такий розподіл спрощує читання та подальше редагування: щоб змінити текст попередження, достатньо відредагувати лише один метод, не торкаючись логіки вибору. Цей принцип — кожен метод відповідає лише за одну річ — є одним із фундаментальних у проектуванні програм.

Скорочений запис методу (вираз-тіло)

Якщо тіло методу складається лише з однієї інструкції, його можна записати у скороченій формі через оператор =>:

тип_результату НазваМетоду([параметри]) => інструкція;

Повна і скорочена форми є точними еквівалентами з погляду компілятора:

Скорочений запис => (вираз-тіло, або expression-bodied member) зустрічається у коді C# дуже часто. Він є синтаксичним цукром — не змінює поведінку методу, лише скорочує запис. Застосовується тоді, коли метод концептуально простий і однорядковий запис не знижує читабельності.

Коли тіло методу складається з кількох інструкцій — завжди використовуйте повну форму з фігурними дужками. Спроба вмістити кілька інструкцій у стрілкову форму є синтаксичною помилкою.

Розроблено Tomka Yurii · © 2026 ·