私は他の定数文字列を連結することによって、新しい定数文字列を作成することができることを知っている:C#でstring定数とint定数を連結して文字列定数を作成できますか?
const string a = "A";
const string ab = a + "B";
は一定のint型に基づいて一定の文字列を作成することが何とか可能ですか?たとえば、次のようにコンパイルされません。MyClass.DeviceInfoに割り当てられ
const int Dpi = 300;
const string DeviceInfo = "<DeviceInfo><Dpi>" + Dpi + "</Dpi></DeviceInfo>";
式は定数でなければなりません。定数2番目の文字列を追加すること
私は
- は(私はint型の値を必要なときにそれをINGのと
int.Parse
)Dpi
代わりにint型の文字列を作ることによってこの問題を回避できることを知って、 DpiString
(したがって、DRYに違反している)、DeviceInfo
static readonly
フィールドの代わりにconst
フィールドを使用してください。
いいえ、文字列定数である表現することはできません...
intを文字列に変換するのはフォーマットプロバイダを使用するため、現在の式はconst式ではありません。実行時にのみ利用可能です –
'string + object'は' object'に対して文化依存変換を使用しますか? [ドキュメント](https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/operators/addition-operator)は残念なことに、それについてはあまり明確ではありません。 – Heinzi