アプリケーションでは、このフォーマットの設定から文字列をロードしますstackoverflow.com?questionId={0}
。明らかに、実行時に値が設定され、クエリ文字列で使用されます。"Hello {0}"のような文字列を出力する
私はこの方法を使用して、起動時にこれらの文字列を記録したい:
void log(string message, params object[] vars)
{
string s = String.Format(message, vars);
Console.WriteLine(s);
}
あなたが呼び出すためString.Format
が例外をスロー期待しかしとして:log(String.Format("Adding new feed '{0}'", "stackoverflow.com?questionId={0}"))
からString.Format
試行を内側{0}
を置換する「(ログ)」。
{
文字をエスケープして置換を試みない簡単な方法はありますか?
はちょうどダブル: '{0}': '{{0}}' –
しかし@DmitryBychenko、実際_usage_を壊すこと...これらは代用されていると考えられているのは、問題のログだけです。 –
ああ、私はジレンマを参照してください。あなたはそれを両方向に持つことはできません。あなたは、 'params'を必要とせず、' string.format'を呼び出さないログメソッドへのオーバーロードが必要になるかもしれません。 「プレースホルダを引用する方法」を質問しているわけではないので、再度開いて投票しますが、「時にはそれらがプレースホルダでないとはどういうふうにしますか」 – hometoast