http://blogs.wankuma.com/rti/archive/2008/09/02/155189.aspx
三項演算子は上から評価される
・・・の続きです。
皆さんの反応を見て
先頭の演算結果が優先される
と表現する方が正しいように思えてきました。
results = 式 ? 真の時の値 : 偽の時の値;
C# の三項演算子は、上記のように記述します。
多重で書く場合、次に続く三項演算子は「儀の時の値」を求めるための、言うなれば最初の三項演算子の一部であって同格ではない訳です。
同格ではない以上、() を記述して演算の順番を任意に変更することはできません。
results = 式 ? 真の時の値 : (式 ? 真の時の値 : 偽の時の値)
上記の()の処理は、偽の時の値を取得するための三項演算子なので、最初の式が真なら()内の演算結果を用いません。
仮に末尾の()内の演算が先に行われたとしても、この結果は変わりません。
と言うことで、前回の検証は、上記を検証するもので、評価処理順序を確認するものではないことがわかった訳です。