String.Format - 我的字符串有什么问题?

时间:2012-04-18 14:36:44

标签: asp.net .net

我以这种方式使用String.Format

String.Format("$(function() { $('{0}').menu(); });", "blaId");

我得到一个例外:

An exception of type 'System.FormatException' occurred and was caught.

我该如何解决这个问题?

4 个答案:

答案 0 :(得分:7)

您应该转义{这样的字符:{{,除非它们是{0}等占位符的一部分。

String.Format("$(function() {{ $('{0}').menu(); }});", "blaId");

答案 1 :(得分:4)

花括号内的索引值无效。 String.Format将此视为格式化的占位符。

{ $('{0}').menu(); }

要解决此问题,请使用双花括号进行转义:

String.Format("$(function() {{ $('{0}').menu(); }});", "blaId");

答案 2 :(得分:1)

转义{}

  String.Format("$(function() {{ $('{0}').menu(); }});", "blaId");

答案 3 :(得分:1)

其他大括号让String.Format感到困惑。

一种解决方案是写:

String.Format("$(function() {1} $('{0}').menu(); {2});", "blaId", "{", "}");

但是最好逃避文字,比如:

String.Format("$(function() {{ $('{0}').menu(); }});", "blaId");