我正在编写一个 WPF/C# 应用程序,在应用程序中我有这个功能:
private char getLastChar()
{
if (textBox1.Text.Length > 0)
return textBox1.Text[textBox1.Text.Length - 1];
}
如果我保持这样,我会得到一个错误:
MainWindow.getLastChar()': not all code paths return a value
我怎样才能让它工作?
最佳答案
预编辑:
鉴于您在评论中说过“如果文本框是空的,程序应该什么都不做”,为什么不直接这样做:
if (textBox1.Text.Length > 0)
{
//DO STUFF HERE
}
else
{
//DO NOTHING HERE
}
如果你真的需要返回一个空值,你可以使用这两个选项之一:
private char? getLastChar()
{
if (textBox1.Text.Length > 0)
return textBox1.Text[textBox1.Text.Length - 1];
else
return null;
}
你会像这样使用它:
char? lastCharInTextBox = getLastChar();
if (lastCharInTextBox == null)
{
//Do something about empty text box
}
else
{
char myVar = lastCharInTextBox.Value;
//Do something with the character inside "myVar"
}
字符是值类型,这意味着它们不能被设置为空引用。使用问号将使字符可为空。
或者,您可以执行以下操作:
private char getLastChar()
{
if (textBox1.Text.Length > 0)
return textBox1.Text[textBox1.Text.Length - 1];
else
return 0;
}
这将返回一个普通的字符,但如果文本框没有文本,将返回一个空终止符。
关于如果条件不满足,C# 函数不返回任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5849587/