http://blogs.wankuma.com/rti/archive/2008/10/20/159277.aspx
同じ値であること
の続きです。
「前回までのあらすじ」
i = j = k = 5;
みたいに書けるけど、比較するときは、
if (i == j == k) Console.WriteLine("コンパイルエラーになるよー");
って書けない。
この理由は、最初の i == j の演算結果 true に対して、その後の int 型の k と比較できないため。
今回は「だったら全部 bool 型ならできるじゃね?!」という実験をしてみる。
var a = false;
var b = false;
var c = false;
var z = a == b == c;
予想通り、可能であることは確認できました。
んで、z の結果ですが・・・・ false になります。
一見、全部 false で同じ値だから z は true になるように思えるけど、a == b の結果が true で false である c と同じではない、という結果から false になるんですよね。
比較演算子で、同じ値であることを示すために a == b == c のように書くという表現は無理があるよー、という結論でした。