为什么这个条件等同于假

本文关键字:等同于 条件 为什么 | 更新日期: 2023-09-27 17:55:21

在此代码的"if"行上有一个断点:

if ((ckbx.Content != null) && (!ckbx.Content.ToString().Contains("(Empty list)")))
{
    string groupName = ckbx.Content.ToString();
    var contextMenu = new PopupMenu();
    contextMenu.Commands.Add(new UICommand("Edit this Group", contextMenuCmd => Frame.Navigate
    (typeof(LocationGroupCreator), groupName)));
    contextMenu.Commands.Add(new UICommand("Delete this Group", async (contextMenuCmd) =>
    {
        await SQLiteUtils.DeleteGroupAsync(groupName); 
    }));
    await contextMenu.ShowAsync(args.GetPosition(this));
}

。中新。内容为"(空列表)",但条件被视为 false - 条件失败。为什么?

为什么这个条件等同于假

。中新。内容为"(空列表)",但条件被视为 false - 条件失败。为什么?

您的条件有逻辑否定运算符 ( ! ) 否定Contains的结果:

 (!ckbx.Content.ToString().Contains("(Empty list)"))

因此,如果内容包含"(空列表)",Contains将返回true,并且!将使其false,从而使条件失败。

(ckbx.Content != null)为真

(!ckbx.Content.ToString().Contains("(Empty list)")是假的——你刚才说这是空列表......并且这检查不是空列表(感谢前面的"!" - "!" 表示不是)。

当然,真&假等同于假