http://blogs.wankuma.com/rti/archive/2008/10/20/159277.aspx
同じ値であること
http://blogs.wankuma.com/rti/archive/2008/10/22/159620.aspx
同じ値であること(その2)
の続きです
「前回までのあらすじ」
i = j = k = 5;
みたいに書けるけど、比較するときは、i == j == k のように書けない。
唯一 bool 型なら書けるが、i == j == k は 3 値が同じであることを表すものではない。
結局、この書き方をしたいのもコードの可読性をあげたいことが目的なのだから、
同じ目的の汎用メソッド
を作ってしまっても大差ないように思えてきました。
ジェネリクスと LINQ を使えば、以下のようにサクッと書けますね。
public static bool 全部同じ<T>(params T[] p) {
return !p.Any(x => !x.Equals(p[0]));
}
以下のように書けるので、目的としては、これでいいかなとも思う。
Console.WriteLine(全部同じ(a, b, c) ? "true" : "false");