我已经在用户看不到的表单中添加了一个标签.基于标签包含的文本继续进行.
这是我的逻辑,但它失败了.我想这样,如果标签包含"不匹配"或"超时",则不应继续.
If((!label.Text.Contain("No match")) || label.Text.Contain("Time out"))
{
// proceed further code
}
else
{
// code
}
Run Code Online (Sandbox Code Playgroud)
这里标签包含"不匹配",然后它移动到其他正确的部分.但是当标签包含"超时"时,它进入if循环内部.所以我修改了这样的代码
If((!label.Text.Contain("No match")) || (!label.Text.Contain("Time out")))
{
// proceed further code
}
else
{
// code
}
Run Code Online (Sandbox Code Playgroud)
仍然没有working.If标签包含"超时",但仍然是进入循环,如果没有别的loop.Label包含在同一时间只有一个文本要么"不匹配"或"超时"或其他任何文字.
我怀疑你想要:
if(!(label.Text.Contains("No match") || label.Text.Contains("Time out")))
{
// proceed further code
}
else
{
// code
}
Run Code Online (Sandbox Code Playgroud)
请注意包围.内部是
label.Text.Contains("No match") || label.Text.Contains("Time out")
Run Code Online (Sandbox Code Playgroud)
然后那就倒了.我可能会把它拉成一个单独的变量:
bool timedOutOrNoMatch = label.Text.Contains("No match") ||
label.Text.Contains("Time out");
if (!timedOutOrNoMatch)
{
}
else
{
}
Run Code Online (Sandbox Code Playgroud)
或者,颠倒它的意义:
if (label.Text.Contains("No match") || label.Text.Contains("Time out"))
{
// Do whatever was in your else block.
}
else
{
// Do whatever was in your first block.
}
Run Code Online (Sandbox Code Playgroud)
如果您对"坏"标签的响应是允许您返回或抛出异常的事情,这也可以减少嵌套量:
if (label.Text.Contains("No match") || label.Text.Contains("Time out"))
{
output.Text = "Go away";
return;
}
// Now handle the success case
Run Code Online (Sandbox Code Playgroud)