タイトルのとおりです。 Related to this question.なぜC#はcharの加算演算を定義していませんか?
なぜ次のコードは機能しませんか?論理的には合理的だと思われる。 - これらの値を加算し、その後、> int型の変換コンパイラは、暗黙の文字を使用している:我々はここで何が起こっているかを推測することができます上記のリンク質問から
今string foo = 'a' + 'b'; // Fails with an invalid int -> string conversion
、。これは、char
sのために定義された加算演算があってはならないと信じさせてくれます!これは本当ですか、もしそうなら、なぜそこにはありませんか?
編集:一般的なコンセンサスは、定義されると期待されるほど大きく定義されていないということです。
2つの文字を文字列に変換する追加を意味するのは、そのことをコンパイラが望んでいないからです。確かに、それはデフォルトの振る舞いとして追加されている可能性がありますが、他の人がcharを実際に整数として追加する方が好きかもしれません...だからここでは最初のcharから文字列をインスタンス化し、すべての誤解を避ける。 – RedGlyph
@redglyph:それが答えだったら私はそれをupvoteしたい。 –