• 締切済み

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だろうが変わらない・・・みたいな 回答はご遠慮ください。

みんなの回答

回答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

suhixinkusu
質問者

お礼

回答ありがとうございました。

関連するQ&A