Как выполнить код после завершения метода?

В C# существует несколько способов выполнить код после завершения метода. Ниже я расскажу о двух наиболее распространенных вариантах.

1. С использованием ключевого слова return
Когда метод достигает оператора return, выполнение метода останавливается и возвращается значение, указанное в операторе return. Однако, вы можете воспользоваться этим моментом и добавить в метод код, который будет выполнен прямо перед оператором return. Например:

public void MyMethod()
{
    // выполняемый код метода
    
    // код, который будет выполнен перед оператором return
    Console.WriteLine("Выполнение кода перед выходом из метода...");
    
    return; // выполнение метода завершается
}

2. С использованием блока finally
Блок finally позволяет выполнить код вне зависимости от того, было ли исключение в методе или нет. Блок finally располагается после блока try и/или блока catch и содержит код, который будет выполнен всегда. Например:

public void MyMethod()
{
    try
    {
        // выполняемый код метода
    }
    catch(Exception ex)
    {
        // обработка исключения
    }
    finally
    {
        // код, который будет выполнен вне зависимости от наличия исключения
        Console.WriteLine("Выполнение кода в блоке finally...");
    }
}

В блоке finally может быть расположен любой код, который должен быть выполнен перед завершением метода. Например, это может быть код для закрытия файлов, освобождения ресурсов и т.д.

Оба этих способа позволяют выполнить код после завершения метода, но имеют немного разное поведение. Выбор между этими вариантами зависит от конкретных требований вашего кода.