在应用程序中,我从此格式stackoverflow.com?questionId={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
会尝试在{log()'中替换{0}
。
有没有一种简单的方法可以转义{
字符,因此不会尝试替换?
答案 0 :(得分:1)
我找到了两个答案。
首先,我通过以下方式逃过了大括号:
log(String.Format("Adding new feed '{0}'", feedStr.Replace("{", "{{").Replace("}", "}}")));
这很好用。
其次如 MartinBrown 所示,我意识到我可以做到:
log("Adding new feed '{0}'", feedStr);