if else string为null

时间:2011-02-22 08:50:11

标签: c# if-statement

我有两个文本框。如果textbox.text中的1为空,则MessageBox将显示提示用户他们没有完全输入字段。但它不起作用......

这是代码:

private void tab1nextButton_Click(object sender, RoutedEventArgs e)
{
    if ((AntcbatchpathTextBox.Text == null) || (MasterbuildpropertiespathTextBox.Text == null))
    {
        System.Windows.MessageBox.Show("You have not specified the paths completely!");

    }
    else
    {
        Tabitem2.Visibility = Visibility.Visible;
        Tabcontrol1.SelectedIndex = 1;

    }
}

我尝试添加断点来检查立即值。当Textbox.Text中的任何一个为空时,立即值分别为“”。我的代码有什么问题吗?

5 个答案:

答案 0 :(得分:6)

尝试string.IsNullOrEmpty(AntcbatchpathTextBox.Text)

答案 1 :(得分:2)

空字符串和空字符串之间存在差异。

空文本框将包含空字符串,因此您必须检查...Text == ""...Text == string.Empty而不是...Text == null

答案 2 :(得分:0)

String.Emptynull 不一样 在您为空TextBox的情况下,它始终为String.Empty

您应该使用String.IsNullOrEmpty方法检查Empty

String.IsNullOrEmpty(AntcbatchpathTextBox.Text)

AntcbatchpathTextBox.Text == String.Emtpy
AntcbatchpathTextBox.Text == ""


另见这个问题/答案:In C#, should I use string.Empty or String.Empty or "" ?

答案 3 :(得分:0)

空字符串和空字符串是两个不同的概念。 Null是一个引用,它不指向内存中的任何对象。空字符串是一个零长度的字符串对象,它是在堆上创建的。如果检查not null,则仅检查引用是否指向对象而不检查其他内容。对于空字符串,您应该包括单独的检查,或者只使用string.IsNullOrEmpty

答案 4 :(得分:0)

你必须检查空字符串。你有'AntcbatchpathTextBox.Text == null'的代码检查空引用。请改用它。

string.IsNullOrEmpty(AntcbatchpathTextBox.Text)