http://d.hatena.ne.jp/ogiogi3/20081021/p6  にも書いたのですが

こっちのほうがコードが見やすいのでコピペ

以下のコードはコンパイルエラーになります。

 

    string s0 = 1 + 2 + 3 + 4.4;

    Console.WriteLine(s0);

 

型 'double' を型 'string' に暗黙的に変換できません。

 

 

それはいいのですが、

右辺に文字列が混入していると、これまたいい匂いのコードに・・・

 

 

    string s1 = 1 + 2 + 3 + 4.4 + 5.5 + "";

    Console.WriteLine(s1);

 

    string s2 = 1 + 2 + "3" + 4.4 + 5.5 + "";

    Console.WriteLine(s2);

 

    string s3 = "1" + 2 + 3 + 4.4 + 5.5;

    Console.WriteLine(s3);

このコードは
コンパイルエラーにならず、暗黙の型変換がなされます。
しかも、計算できるとこまで計算して・・・

いろいろしらべると、最初に文字列が来たところまでを計算し、
文字列の後ろはすべて文字連結になってますね。。
いいんだろうかこの仕様で・・・

というわけで、実行結果を予測してください。

実際はこんなんなりました。
まーびっくり

15.9
334.45.5
1234.45.5

.NET Framework 2.0, 3.5 で、同じ動作になるのは確認しましたー