1

演算子を使用して 2 つの文字を連結しようとすると+、コンパイラは次のエラー メッセージを表示しintますstring

私のコードは次のとおりです。

const string Expr = ('$' + (char)(39));

なぜこのエラーが発生するのですか? どうすれば修正できますか?

4

2 に答える 2

9

2 つの文字で演算子を使用しても、+それらは連結されません。代わりに、それらを に変換しint、これらの int を追加して、int.

問題の簡単な解決策"$"string、の代わりにを使用することですが'$'、それはchar定数式ではないため、新しいコンパイラ エラーで失敗します。

または、整数ステップを完全にスキップして、単に使用することもできますconst string Expr = "$'"。または、本当に整数コードポイントを使用したい場合は、それを 16 進数に変換して "$\u0027" を使用できます。

いくつかの同様の状況での一般的な回避策は、""最初に空の文字列と連結することです ( "" + a + b)。ToString()または、オペランドの 1 つ (または両方) を手動で呼び出すこともできます。しかし、あなたの場合、$プレフィックスを文字列に変える方がきれいです。

于 2012-08-06T09:48:35.893 に答える
1

使用するだけString.Concatです:

string.Concat('$', (char)39)

とにかく、文字列の + 演算子は内部的にそのメソッドに変換されます。

constまた、そのような表現でキーワードを使用することはできません。readonly代わりに使用することを検討してください。

于 2012-08-06T09:50:51.663 に答える