void方法return

上节课,其实我们也提到了一下的,就算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点后的,就打印下午好,否则就不执行输出,直接返回去。

Previous:

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注