我仍然是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);
这将不允许返回类型,如果单独保留,它将继续通过未停止的函数继续。这是不可取的。
答案 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。
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)
Method SetY(int y) ...
Function CalculateY(int x) As Integer ...
大多数语言现在对两个版本使用相同的语法,使用void作为返回类型,表示实际上没有返回类型。我认为这是因为语法更加一致,更容易从一个方法更改为另一个方法,反之亦然。