一般に、短絡orオペレータ||は、の右側を無視するか、左側がtrueと評価された場合を無視します。どうやら、これには例外が見つかりました。
以下をチェックしてください:
if (foo == null || bar != true ? foo.Count == 0 : true)
{
}
foo.Countこのコードは、がnullであるため、コマンドでnull参照例外をスローしfooます。そして当然、ブール論理はこれを可能にします。ただし、がnullの場合、は短絡し、式の右辺を評価することすらできないfooと予想されますが、それでもそうなり、例外がスローされます。or
これは私のコードまたはC#コンパイラのバグですか?このケースを処理するC#仕様の一部はありますか?