C#での文字列補間がconst文字列で機能しないのはなぜですか?たとえば:文字列補間がconst文字列で機能しない理由
private const string WEB_API_ROOT = "/private/WebApi/";
private const string WEB_API_PROJECT = $"{WEB_API_ROOT}project.json";
私の視点からは、すべてがコンパイル時に知られています。それとも、後で追加される機能ですか?
コンパイラメッセージ:
The expression being assigned to 'DynamicWebApiBuilder.WEB_API_PROJECT' must be constant.
どうもありがとう!
補間された文字列は単に 'string.Format'呼び出しに変換されます。 – juharr
回避策としては、 'const'を' static readonly'に置き換えてください。 –
@juharr:渡すパラメータがこの定数を初期化するのに使用できる別の定数であるかどうかをコンパイラがチェックできなかった理由を説明しません。連結された文字列リテラルで使用できます。だから、なぜそれが結合された文字列リテラルで許可されていない、コンパイラは同じテクニックを使用することができます。 –