我在这里做错了什么?
string tmp = @"
if (UseImageFiles) {
vCalHeader += ""<td><img onmousedown='' src= '{0}cal_fastreverse.gif' width='13px' height='9' onmouseover='changeBorder(this, 0)' onmouseout='changeBorder(this, 1)' style='border:1px solid white'></td>\n""; //Year scroller (decrease 1 year)
calHeight += 22;
}";
string x = "xter";
tmp = string.Format(tmp, x);
我得到了
输入字符串的格式不正确
尝试更改{0}
时。我在C#和WinForms中这样做。
格式异常未处理
输入字符串的格式不正确
排查我得到的提示:
确保您的方法参数格式正确。将字符串转换为datetime时,解析字符串以在将每个变量放入DateTime对象之前取出日期。
答案 0 :(得分:281)
string.Format()
认为每个'{'或'}'都是占位符的一部分(例如您已使用的'{0}')。你需要通过加倍来逃避每个字面值。
所以在你的情况下做:
string tmp = @"
if (UseImageFiles) {{
...
}}";