如何在不退出程序的情况下退出方法?

时间:2010-07-22 23:24:25

标签: c# methods return exit

我仍然是C#的新手,与C / CPP相比,我很难习惯它。

如何在不退出程序的情况下退出C#上的函数,就像这个函数一样?

if (textBox1.Text == "" || textBox1.Text == String.Empty || textBox1.TextLength == 0)
    textBox3.Text += "[-] Listbox is Empty!!!!\r\n";
System.Environment.Exit(0);

这将不允许返回类型,如果单独保留,它将继续通过未停止的函数继续。这是不可取的。

6 个答案:

答案 0 :(得分:124)

有两种方法可以提前退出方法(不退出程序):

  • 使用return关键字。
  • 抛出异常。

异常仅应用于特殊情况 - 当方法无法继续且无法返回对调用者有意义的合理值时。通常你应该在完成后返回。

如果您的方法返回void,那么您可以在没有值的情况下编写return:

return;

特别关于您的代码:

  • 无需编写相同的测试三次。所有这些条件都是等同的。
  • 在编写if语句时,您还应该使用花括号,以便明确哪些语句位于if语句的主体内:

    if (textBox1.Text == String.Empty)
    {
        textBox3.Text += "[-] Listbox is Empty!!!!\r\n";
    }
    return; // Are you sure you want the return to be here??
    
  • 如果您使用的是.NET 4,则有一种有用的方法,根据您的要求,您可能需要考虑使用此方法:String.IsNullOrWhitespace

  • might想要使用Environment.Newline而不是"\r\n"
  • 除了将消息写入文本框之外,您可能还想考虑另一种显示无效输入的方法。

答案 1 :(得分:8)

除了Mark的答案之外,您还需要了解范围,使用大括号指定(在C / C ++中)。所以:

if (textBox1.Text == "" || textBox1.Text == String.Empty || textBox1.TextLength == 0)
    textBox3.Text += "[-] Listbox is Empty!!!!\r\n";
return;

总会在那时返回。但是:

if (textBox1.Text == "" || textBox1.Text == String.Empty || textBox1.TextLength == 0)
{
    textBox3.Text += "[-] Listbox is Empty!!!!\r\n";
    return;
}

只有在进入if语句时才会返回。

答案 2 :(得分:1)

我会使用return null;表示没有要返回的数据

答案 3 :(得分:0)

如果函数是void,则结束函数将return。否则,您需要明确return someValue。正如马克所说,你也可以throw例外。你问题的背景是什么?您是否有更大的代码示例用于向您展示退出该功能的一些方法?

答案 4 :(得分:0)

此处的基本问题是您错误System.Environment.Exit return

答案 5 :(得分:0)

@John,Earlz和Nathan。我在uni学习它的方法是:函数返回值,方法没有。在某些语言中,语法实际上是不同的。示例(没有特定语言):

Method SetY(int y) ...
Function CalculateY(int x) As Integer ...

大多数语言现在对两个版本使用相同的语法,使用void作为返回类型,表示实际上没有返回类型。我认为这是因为语法更加一致,更容易从一个方法更改为另一个方法,反之亦然。