我设置了 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/