Мы кратко затрагивали эту тему на прошлом занятии: оператор return можно использовать даже в методах с типом возврата void.
Методы, возвращающие значение, требуют обязательного использования оператора return;
Методы void без возвращаемого значения не требуют обязательного написания return:
Когда выполнение кода доходит до закрывающей фигурной скобки } метода, управление автоматически возвращается в вызывающий код без передачи каких-либо данных.
Однако в практической разработке часто требуется досрочно завершить работу метода. В методах void можно использовать пустой оператор return; для немедленного выхода:
Синтаксис: return; (после оператора не указывается выражение)
Ограничение: допускается использовать только внутри методов, помеченных как void
Пример:
void SayHi()
{
Console.WriteLine("hello welcome to foxDevelop.com");
}Code language: C# (cs)
Это один из предыдущих примеров, простейший метод void, внутри которого не нужен оператор return.
При вызове этого метода выполнится Writeline и выведется текст «hello welcome to foxDevelop.com»
static void Main()
{
Program program = new Program();
program.SayHi();
}
void SayHi()
{
Console.WriteLine("hello welcome to foxdevelop.com");
}Code language: C# (cs)

Теперь добавим return;
void SayHi()
{
return; // Оператор return в одиночку завершает выполнение текущего метода
Console.WriteLine("hello welcome to foxdevelop.com");
}Code language: C# (cs)

После запуска никакого вывода не появится. Поскольку return; находится выше Console.WriteLine, при выполнении return управление сразу переходит вызывающему коду, а последующие строки не выполняются. Это называется досрочным завершением.

Код, расположенный после оператора return, никогда не выполнится.
Таким образом, даже в методах void можно использовать return;, только после него не нужно передавать значение.

int Add(int a, int b)
{
return 100;
}Code language: C# (cs)
Методы не типа void обязаны использовать конструкцию return значение;
После return обязательно должно идти какое-либо значение: переменная, литерал (числа наподобие 100, 3.14) или выражение a+b. В любом случае необходимо вернуть результат.
Если опустить результат и написать просто return;, как в методах void, возникнет ошибка компиляции.

Несколько точек выхода с return в методе void
static void Main()
{
Program program = new Program();
program.ShowMax(100,200);
}
void ShowMax(int a, int b)
{
if (a>b)
Console.WriteLine($"{a}>{b}"); // При соблюдении условия сразу выходим из метода
if (b > a)
Console.WriteLine($"{b}>{a}");
}Code language: C# (cs)

Один из примеров:
class Program
{
static void Main()
{
Program program = new Program();
program.Greet();
}
private void Greet()
{
DateTime dt = DateTime.Now;
if (dt.Hour < 12)
return; // До 12 часов выходим сразу без вывода текста
Console.WriteLine("Good afternoon!");
}
}Code language: C# (cs)
Если текущее время после двенадцати часов, выведется приветствие на полдень, иначе вывод не произойдёт, управление вернётся сразу.
Оператор return в методах void