Operator '||' cannot be applied to operands of type 'bool?' and 'bool?'(代码片段

仰天大笑出门去,我辈岂是蓬蒿人。这篇文章主要讲述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;

 
【Operator ' ||' cannot be applied to operands of type ' bool?' and ' bool?' (代码片段】但是Tag属性可能为空,于是给Tag加上判空处理
if (btn1.Tag?.ToString().StartsWith("Menu") || btn2.Tag?.ToString().StartsWith("Submenu")) return;

 
这样又引发了语法错误。
SeverityCodeDescriptionProjectFileLineSuppression State ErrorCS0019Operator ‘||‘ cannot be applied to operands of type ‘bool?‘ and ‘bool?‘

 
解决方案
if ((btn1.Tag?.ToString().StartsWith("Menu") ?? false) || (btn2.Tag?.ToString().StartsWith("Submenu") ?? false))
return;

 

    推荐阅读