IsSaveNew
是bool?
的类型CoverLetterId
是int?
的类型
if (coverLetter.IsSaveNew ?? true || coverLetter.CoverLetterId == null)
coverLetter.CoverLetterId == null
。该声明在Visual Studio(2012)中被标记为不可访问。但是,如果
IsSaveNew
为false,则它将达到第二个条件。为什么Visual Studio这么说? 最佳答案
看起来像是运算符的优先级问题。您的陈述被评估为:
if (coverLetter.IsSaveNew ?? (true || coverLetter.CoverLetterId == null))
因此,
||
运算符的右侧操作数将永远不会被求值,因为其左侧操作数是文字true
。您可以添加括号来解决此问题:
if ((coverLetter.IsSaveNew ?? true) || coverLetter.CoverLetterId == null)
关于c# - 如果条件不可达怎么办?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20990776/