如何退出方法而不退出程序?

对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); 

这将不允许返回types,如果单独留下,它将继续通过未closures的function继续。 这是不可取的。

提早退出方法有两种方法(不退出程序):

  • 使用return关键字。
  • 抛出exception。

例外情况只能用于特殊的情况 – 当方法不能继续时,它不能返回一个合理的值,这对调用者是有意义的。 通常虽然你应该只是在你完成时回来。

如果你的方法返回void,那么你可以写没有值的返回值:

 return; 

具体关于你的代码:

  • 没有必要三次写同样的testing。 所有这些条件都是相同的。
  • 在编写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 。

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

除了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语句时才会返回。

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

这里的基本问题是你错误System.Environment.Exit返回。

@约翰,伯爵和内森 我在uni学到的方法是:函数返回值,方法不。 在某些语言中,语法是/实际上是不同的。 示例(无特定语言):

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

大多数语言现在对这两个版本使用相同的语法,使用void作为返回types来说实际上不是返回types。 我认为这是因为语法更加一致,更容易从一个方法转换到另一个方法,反之亦然。

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