在String.Format()
方法上出现此错误并且不明白为什么,一切对我来说都很好?
string fontface = "";
foreach(...)
{
fontface = String.Format(@"{3}
@font-face {
font-family: '{0}';
src: url('{0}.eot');
src: url('{0}.eot') format('embedded-opentype'),
url('{0}.woff2') format('woff2'),
url('{0}.woff') format('woff'),
url('{0}.ttf') format('truetype'),
url('{0}.svg#{0}') format('svg');
font-weight:{1};
font-style:{2};
}"
, family, weight, style, fontface);
}
答案 0 :(得分:8)
您需要将"{", "}"
加倍,string.Format()
认为每个'{'
或'}'
都是占位符的一部分(如'{0}'
)< / p>
这样的事情:
fontface = String.Format(@"{3}
@font-face {{
font-family: '{0}';
src: url('{0}.eot');
src: url('{0}.eot') format('embedded-opentype'),
url('{0}.woff2') format('woff2'),
url('{0}.woff') format('woff'),
url('{0}.ttf') format('truetype'),
url('{0}.svg#{0}') format('svg');
font-weight:{1};
font-style:{2};
}}"
, family, weight, style, fontface);
答案 1 :(得分:1)
您的两个问题是@font-face {
行和}"
行。使用Format时,您必须使用其中两个来转义花括号。只需将这些行更改为@font-face {{
和}}"