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 で、同じ動作になるのは確認しましたー