C#检查UILabel是否为空无效

And*_*eas 0 c# if-statement

我对这个if语句有一个小问题:

if (selectedlabel.Text!=null|| selectedlabel.Text!=""|| selectedlabel!=null)
{
    basketID = int.Parse(selectedlabel.Text); //nullpointer Value Can not be null
}
Run Code Online (Sandbox Code Playgroud)

为什么这不起作用?

我设置了一个断点,我看到它selectedlabel.Text是null:

在此输入图像描述

Tim*_*ter 6

你使用||而不是正确的&&

if (selectedlabel != null && selectedlabel.Text != null && selectedlabel.Text != "")
{
    basketID = int.Parse(selectedlabel.Text); 
}
Run Code Online (Sandbox Code Playgroud)

但这更简洁,也有效:

if (selectedlabel != null && !String.IsNullOrEmpty(selectedlabel.Text))
{
    basketID = int.Parse(selectedlabel.Text); 
}
Run Code Online (Sandbox Code Playgroud)

使用int.TryParse以确保它是一个有效的整数:

int basketID;
if(selectedlabel != null && int.TryParse(selectedlabel.Text, out basketID))
{
    //  ...
}
Run Code Online (Sandbox Code Playgroud)

使用C#6,您还可以使用空条件运算符:

int basketID;
if(int.TryParse(selectedlabel?.Text, out basketID))
{
    //  ...
}
Run Code Online (Sandbox Code Playgroud)