演算子を使用して 2 つの文字を連結しようとすると+、コンパイラは次のエラー メッセージを表示しintますstring。
私のコードは次のとおりです。
const string Expr = ('$' + (char)(39));
なぜこのエラーが発生するのですか? どうすれば修正できますか?
2 つの文字で演算子を使用しても、+それらは連結されません。代わりに、それらを に変換しint、これらの int を追加して、int.
問題の簡単な解決策"$"はstring、の代わりにを使用することですが'$'、それはchar定数式ではないため、新しいコンパイラ エラーで失敗します。
または、整数ステップを完全にスキップして、単に使用することもできますconst string Expr = "$'"。または、本当に整数コードポイントを使用したい場合は、それを 16 進数に変換して "$\u0027" を使用できます。
いくつかの同様の状況での一般的な回避策は、""最初に空の文字列と連結することです ( "" + a + b)。ToString()または、オペランドの 1 つ (または両方) を手動で呼び出すこともできます。しかし、あなたの場合、$プレフィックスを文字列に変える方がきれいです。
使用するだけString.Concatです:
string.Concat('$', (char)39)
とにかく、文字列の + 演算子は内部的にそのメソッドに変換されます。
constまた、そのような表現でキーワードを使用することはできません。readonly代わりに使用することを検討してください。