我有2个表格设置.在第一种形式中,我有以下代码.
frm_BL addBranch = new frm_BL();
do
{
addBranch.ShowDialog();
if (addBranch.txtAmount.Text == "")
{
break;
}
} while (true);
Run Code Online (Sandbox Code Playgroud)
在主要形式.而这只是第二种形式.
private void btnAccept_Click(object sender, EventArgs e)
{
this.Close();
}
Run Code Online (Sandbox Code Playgroud)
但是我发现如果我将主窗体的代码更改为:
if (addBranch.txtAmount.Text == null) //changed to null
Run Code Online (Sandbox Code Playgroud)
第二种形式不断涌现.但如果它留在
if (addBranch.txtAmount.Text == "")
Run Code Online (Sandbox Code Playgroud)
它关闭了表格.有人可以解释为什么会这样吗?
null和空字符串是两个不同的东西,如果你想处理这两种情况你可以使用String.IsNullOrEmpty代替
null表示对您所拥有的字符串的引用不存在(您指向什么)
空字符串表示您具有对不包含任何内容的字符串的引用(例如,指向空字符数组的指针).
最好的方法是:
if (String.IsNullOrEmpty(addBranch.txtAmount.Text))
Run Code Online (Sandbox Code Playgroud)
该txtAmount.Text属性string包含文本框的内容.如果文本框为空,那么它是一个零长度的字符串.
检查是否相等null是说"如果文本框没有字符串...",这将始终为false.要检查的正确条件是"如果文本框的字符串为空......".
使用该IsNullOrEmpty方法检查两种情况.在这种情况下,字符串永远不应为null,但检查不会有害.
请注意,这""是一个空字符串(相当于String.Empty),而null表示该字符串不存在.
| 归档时间: |
|
| 查看次数: |
179 次 |
| 最近记录: |