>>428
それは演算子で推論してるだけじゃん。

+が数値扱う演算子として定義されてるから推論できる。
逆に言えば、+演算子が使われている時、+の左右は数値でしかありえない。
(標準の+を隠して自分で定義すれば話は別だが、同時に複数使えない)

C# なら xは数値以外の好きなオブジェクトにすることができる。

言語仕様の違いでしかないよ。