如果条件不满足,C# 函数不返回任何内容

标签 c# wpf

我正在编写一个 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/

相关文章:

c# - 在 C++ 中不能将数组作为返回类型吗?备择方案?

c# - 在 WinForms 中托管时管理 WPF 主题

c# - 出现异常 : Invalid attempt to read when reader is closed

c# - 元素内容显示在设计时而不是运行时

c# - 不安全边缘检测仍然很慢

c# - 是否有可能在将其保存在 Entity Framework 之前获取身份字段值

c# - 从多个表连接 mysql 4.0 数据的最快方法?

wpf - 如何在多重绑定(bind)中传递 1 个绑定(bind)的常量值?

c# - 主/细节的通用Viewmodel模式

wpf - VS2010 中的 WPF 项目文件隐藏的 Main() 函数在哪里?