C# 字符串 - 为什么 null 给我的结果与 ""不同?

标签 c# string null

我设置了 2 个表单。在第一种形式中,我有以下代码。

frm_BL addBranch = new frm_BL();

do
{
    addBranch.ShowDialog();
    if (addBranch.txtAmount.Text == "")
    {
        break;
    }

} while (true);

在主窗体中。而这只是第二种形式。

private void btnAccept_Click(object sender, EventArgs e)
{
    this.Close();
}

但是我发现如果我把主窗体的代码改成:

 if (addBranch.txtAmount.Text == null) //changed to null

第二种形式不断弹出。但如果它停留在

if (addBranch.txtAmount.Text == "") 

它关闭表单。有人可以解释为什么会这样吗?

最佳答案

最好的方法是:

if (String.IsNullOrEmpty(addBranch.txtAmount.Text))

txtAmount.Text 属性是一个包含文本框内容的字符串。如果文本框为空,则它是一个零长度字符串。

检查是否与 null 相等是说“如果文本框没有字符串 ...”,这将始终为 false。正确的检查条件是“如果文本框的字符串为空...”。

使用 IsNullOrEmpty 方法检查这两个条件。在这种情况下,字符串永远不应为空,但检查也无妨。

请注意,"" 是一个空字符串(相当于 String.Empty),而 null 表示该字符串不存在。

关于C# 字符串 - 为什么 null 给我的结果与 ""不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10005028/

相关文章:

c# - 实例化然后分配与声明和分配之间的区别?

c++ - 如何在 C++ 中读取字符串中以空格分隔的多个 double ?

ruby - 我如何检查一对单词是否只有 1 个字母不同?

SQL查询后PHP var_dump NULL错误

c# - 为什么在客户端拆分 TCP 消息不起作用?

c# - 如何设置 InputAction.CallbackContext 的新实例来测试输入?

c# - 没有参数的 void Func

c++ - 用另一个字符串替换一个字符串的一部分

c# - 使用空合并运算符的隐式转换

C语言: why do i get NULL?