C# 如果else字符串为空

C# 如果else字符串为空,c#,if-statement,C#,If Statement,我有两个文本框。如果textbox.text中的1为空,MessageBox将显示以提示用户他们没有完全输入字段。但是它不起作用 代码如下: private void tab1nextButton_Click(object sender, RoutedEventArgs e) { if ((AntcbatchpathTextBox.Text == null) || (MasterbuildpropertiespathTextBox.Text == null)) {

我有两个文本框。如果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中的任何一个为空时,立即值分别为“”。我的代码有什么问题吗?

试试
string.IsNullOrEmpty(AntcbatchpathTextBox.Text)
不一样
对于空的
文本框
而言,它将始终是
字符串。空的

您应该使用以下方法检查
Empty



另请参见此问题/答案:

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


空文本框将有一个空字符串,因此您必须选中
…Text==”
…Text==string。empty
而不是
…Text==null
null和空字符串是两个不同的概念。Null是一个不指向内存中任何对象的引用。空字符串是在堆上创建的零长度字符串对象。如果检查NOTNULL,则只检查引用是否指向对象,而不检查其他内容。对于空字符串,您应该包含一个单独的检查,或者只使用string.IsNullOrEmpty

您必须检查空字符串。您拥有的代码“AntcbatchpathTextBox.Text==null”检查空引用。用这个代替

string.IsNullOrEmpty(AntcbatchpathTextBox.Text)

IsNullOrWhiteSpace
可能更好。请注意,IsNullOrWhiteSpace在.NET 4之前不可用。0@Xavinou根据可能可用或不可用的BCL版本,
TextBox
中的
Text
永远不会为
null
。它总是有一些字符串值。对于空的
文本框
文本
属性将包含空字符串
“”
。实际上,您可以只测试AntcbatchpathTextBox.Text.Length>0。文本永远不会为空,您将检查文本是否包含内容。
AntcbatchpathTextBox.Text == String.Emtpy
AntcbatchpathTextBox.Text == ""
string.IsNullOrEmpty(AntcbatchpathTextBox.Text)