我为它创建了一个解决方法,但对以下字符串感到困惑:
string dpicker = "<script>$(function() { $(\"#{0}\").datepicker();});</script>";
执行此操作时抛出 FormatException:
String.Format(dpicker, "DatePicker");
实际问题是什么?
最佳答案
您需要转义函数的花括号:
string dpicker = "<script>$(function() {{ $(\"#{0}\").datepicker();}});</script>";
// ^^ ^^
如此处所用,正确的做法是将它们加倍。参见 Escaping Braces .
string.Format
方法的工作原理是逐个字符地查看整个字符串,然后选择它们属于“文字”类别还是格式参数类别。一旦它看到你未转义的花括号,它就明白这意味着“我们现在正在格式化”,所以它首先寻找一个数字字符(当然,这不是花括号中唯一可接受的值,但在至少一个数字必须在前),找不到一个,并抛出异常。
关于c# - 为什么这个 String.Format 操作会抛出 FormatException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29286269/