我对这个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:
你使用||而不是正确的&&
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)