Operator '||' cannot be applied to operands of type 'bool?' and 'bool?'

一开始想根据Button的Tag属性判断一些操作,于是写了

if (btn1.Tag.ToString().StartsWith("Menu") || btn2.Tag.ToString().StartsWith("Submenu"))
    return;

但是Tag属性可能为空,于是给Tag加上判空处理

if (btn1.Tag?.ToString().StartsWith("Menu") || btn2.Tag?.ToString().StartsWith("Submenu"))
    return;

这样又引发了语法错误。

Severity    Code    Description    Project    File    Line    Suppression State
Error    CS0019    Operator '||' cannot be applied to operands of type 'bool?' and 'bool?'

解决方案

if ((btn1.Tag?.ToString().StartsWith("Menu") ?? false) || (btn2.Tag?.ToString().StartsWith("Submenu") ?? false)) 
return;
原文地址:https://www.cnblogs.com/hupo376787/p/12874698.html