Ya lo comentamos brevemente en la clase anterior: incluso en métodos con tipo de retorno void se puede escribir return.
Los métodos que devuelven un valor requieren obligatoriamente la sentencia return;
Los métodos void sin valor de retorno no están obligados a poner return:
Cuando la ejecución llega a la llave de cierre } del método, vuelve automáticamente al llamante sin transmitir ningún dato.
Sin embargo, en el desarrollo real muchas veces necesitamos finalizar el método antes de terminar su código. Los métodos void pueden usar return; sin argumentos para salir directamente:
Sintaxis: return; (sin ninguna expresión después)
Restricción: solo se puede usar dentro de métodos marcados como void
Ejemplo:
void SayHi()
{
Console.WriteLine("hello welcome to foxDevelop.com");
}Lenguaje del código: C# (cs)
Este es uno de los ejemplos anteriores, un método void muy sencillo que no necesita return en su interior.
Si lo invocamos, ejecutará Writeline y mostrará “hello welcome to foxDevelop.com”
static void Main()
{
Program program = new Program();
program.SayHi();
}
void SayHi()
{
Console.WriteLine("hello welcome to foxdevelop.com");
}Lenguaje del código: C# (cs)

Ahora añadimos return;
void SayHi()
{
return; // La sentencia return usada sola finaliza la ejecución del método actual
Console.WriteLine("hello welcome to foxdevelop.com");
}Lenguaje del código: C# (cs)

Al ejecutarlo no se muestra nada. Como return; está antes de Console.WriteLine, cuando se ejecuta return el programa vuelve al llamante y el código posterior no se ejecuta. Equivale a una salida anticipada.

El código que viene después nunca se ejecutará.
Así que aunque sea un método void también se puede usar return;, solo que no hace falta poner ningún valor después de return.

int Add(int a, int b)
{
return 100;
}Lenguaje del código: C# (cs)
Los métodos que no son void deben llevar return valor;
Después de return debe ir obligatoriamente un resultado: puede ser una variable, un literal (valores como 100, 3.14) o una expresión como a+b. En definitiva, debe devolver algún resultado.
Si no ponemos ningún resultado y escribimos simplemente return; como en los métodos void, obtendremos un error.

Múltiples puntos de salida con return en métodos 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}"); // Si se cumple la condición, salimos directamente del método
if (b > a)
Console.WriteLine($"{b}>{a}");
}Lenguaje del código: C# (cs)

Un ejemplo:
class Program
{
static void Main()
{
Program program = new Program();
program.Greet();
}
private void Greet()
{
DateTime dt = DateTime.Now;
if (dt.Hour < 12)
return; // Salimos antes de las 12 sin imprimir nada
Console.WriteLine("Good afternoon!");
}
}Lenguaje del código: C# (cs)
Si la hora actual es después de las doce, muestra el saludo de la tarde; en caso contrario no realiza ninguna impresión y vuelve inmediatamente.
return dentro de métodos void