C#:
Организация кода в функции

Как:

Представьте, что у вас есть код, который несколько раз выводит приветствие. Без функций это беспорядок. С функциями — аккуратно.

// Без функций - повторения
Console.WriteLine("Привет, Эми!");
Console.WriteLine("Привет, Боб!");
Console.WriteLine("Привет, Чарли!");

// С функциями - чище
void Greet(string name) {
    Console.WriteLine($"Привет, {name}!");
}

Greet("Эми");
Greet("Боб");
Greet("Чарли");

Вывод одинаковый, но вторая версия намного аккуратнее.

Подробнее

Ещё во времена ассемблера для перехода к различным участкам кода использовали GOTO — это было хаотично и сложно для отслеживания. Функции — это значительный шаг вперёд, как организованные ящики в инструментальном ящике. Альтернативы? Конечно. У вас есть методы, которые являются функциями в контексте класса. Затем есть лямбды и инлайн-функции для быстрых разовых задач.

Что касается реализации — маленькие, сфокусированные функции — это золото. Их проще тестировать и отлаживать. Большие функции с множеством обязанностей могут стать монструозными, получив сомнительный титул «спагетти-код». Придерживайтесь одной задачи на функцию; вы поблагодарите себя позже.

См. также

Для дополнительной информации о функциях и лучших практиках смотрите: