上节课,其实我们也提到了一下的,就算void返回类型的方法,其实也可以写return的。
有返回值的方法强制要求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;的时候,程序就来及回到调用的地方,后面的代码不会执行,相当于提前结束了。

后面的代码永远都不会执行。
所以尽管是void,也是可以使用return;的 只不过return后面不需要带上值。

int Add(int a, int b)
{
return 100;
}Code language: C# (cs)
非void类型的方法,必须return 值;
return 后面必须带有一个结果,不管是一个变量,一个字面值(字面值就是一个100,3.14等等这样的值),还是一个表达式a+b。反正最终需要有一个结果。
如果没有结果,和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)
如果当前时间是12点后的,就打印下午好,否则就不执行输出,直接返回去。