网站网页设计引言,跨境电商有哪些平台,昆明百度搜索排名优化,企业网站模板 免费下载C#格式化字符串中转义大括号“{}” 原文:C#格式化字符串中转义大括号“{}”今天#xff0c;用C#写程序操作Excel#xff0c;读取单元格内容根据所需格式生成字符串#xff0c;使用String.Format(string format,object arg0)方法。以前只知“{0}”为索引占位符(即格式项)用C#写程序操作Excel读取单元格内容根据所需格式生成字符串使用String.Format(string format,object arg0)方法。以前只知“{0}”为索引占位符(即格式项)与参数列表中的第一个对象相对应格式设置过程将每个格式项替换为对应对象的值的文本表示形式。但这次需将参数对象格式成一对大括号括起来的格式即返回字符串“{对象arg0的文本表示形式}”。 [csharp] view plaincopyprint? //直接加大括号 String.Format({{0}},1);//{0} 如果使用上面语句并不能获得所需结果“{1}”因为左大括号和右大括号被解释为格式项的开始和结束如果要在format参数中指定大括号字符须使用转义序列显示文本左大括号或右大括号。在格式化字符串中这个转义字符还是大括号本身。因此在固定文本中指定两个左大括号 (“{{”) 以显示一个左大括号 (“{”)或指定两个右大括号 (“}}”) 以显示一个右大括号 (“}”)。 [csharp] view plaincopyprint? //本例的一种正确方式 String.Format({{{0}}},1);//{1} 按照在format中遇到大括号的顺序依次解释它们不支持解释嵌套的大括号。虽然上面能得到正确结果但解释转义大括号的方式会导致意外的结果。例如考虑要显示一个左大括号、一个格式化为十进制数的数值和一个右大括号的格式项“{{{0:D}}}“。但是实际是按照以下方式解释该格式项 1、前两个左大括号 ({{) 被转义生成一个左大括号 2、之后的三个字符 ({0:) 被解释为格式项的开始。 3、下一个字符 (D) 将被解释为 Decimal 标准数值格式说明符但后面的两个转义大括号 (}}) 生成单个大括号。由于得到的字符串 (D}) 不是标准数值格式说明符号所以得到的字符串会被解释为用于显示字符串“D}”的自定义格式字符串。 4、最后一个大括号 (}) 被解释为格式项的结束。 5、显示的最终结果是字符串“{D}”。不会显示本来要格式化的数值。 在编写代码时避免错误解释转义大括号和格式项的一种方法是单独格式化大括号和格式项。也就是说在第一个格式化操作中显示文本左大括号在下一操作中显示格式项的结果然后在最后一个操作中显示文本右大括号。 [csharp] view plaincopyprint? //正确无误的形式 String.Format({0}{1}{2},{,1,});//{1} posted on 2014-05-05 15:48 NET未来之路 阅读(...) 评论(...) 编辑 收藏 转载于:https://www.cnblogs.com/lonelyxmas/p/3709452.html