- 締切済み
C# こういう場合ってどうなるの?
public void A(bool b) { if(b ? B() : C())//分かると思いますが、三項演算子 { //略 } } public bool B() { return true; } public bool C() { return false } 上記のAにtrueを渡し実行した場合、 if文の中はどうなるのでしょうか? 引数がtrueならBを実行し、Bの戻り値trueが if文で処理され、if内に入る・・・でよろしいのでしょうか? それとも引数bの評価がそのままifで使われるのでしょうか? 例えばのコードなので、bだろうがBだろうが変わらない・・・みたいな 回答はご遠慮ください。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- Yune-Kichi
- ベストアンサー率74% (465/626)
回答No.1
if文の条件はb ? B() : C()ですから,これの評価結果がif文の選択に使われます。 そして,?演算子は短絡演算を行いますから,bが真の場合はB()の結果のみをもって判断が行われます。 # Cは呼び出されない ref) http://msdn.microsoft.com/ja-jp/library/5011f09h.aspx http://msdn.microsoft.com/ja-jp/library/ty67wk28.aspx
お礼
回答ありがとうございました。