C#中string.Format输出内容中含有花括号的解决方法

C#中string.Format输出内容中含有花括号的解决方法

Laughing
2018-10-04 / 0 评论 / 1,334 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2021年04月27日,已超过1362天没有更新,若内容或图片失效,请留言反馈。

问题再现

今天在开发的时候,遇到了需要传递session的地方,我们这边是用过formstate传递的,如下:

argumentString = string.Format("{FORMSTATE~dwbh}='{0}'&{FORMSTATE~ssbm}='{1}'&{FORMSTATE~year}='{2}'&{FORMSTATE~month}='{3}'&{FORMSTATE~zclb}='{4}'&{FORMSTATE~zcbh}='{5}'", hsdw, ssbm, year, month, zclb, zcbh);

问题分析

因为花括号字符是拿来做填充检测的(比如{0}表示首个子串),函数并不知道我们最外面的花括号是文本内容,结果就解析失败了。

问题解决

细想一下微软在提供string.Format方法时,不会没有考虑到花括号问题,就像文本内双引号内容我们用 \" 表示,查了一下果然有代替表示方法,用两个连在一起的“{{”表示“{”,右花括号也同理,所以得到最终解决方案:

argumentString = string.Format("{{FORMSTATE~dwbh}}='{0}'&{{FORMSTATE~ssbm}}='{1}'&{{FORMSTATE~year}}='{2}'&{{FORMSTATE~month}}='{3}'&{{FORMSTATE~zclb}}='{4}'&{{FORMSTATE~zcbh}}='{5}'", hsdw, ssbm, year, month, zclb, zcbh);  
1

评论 (0)

取消
  1. 头像
    Berita Menarik Terupdate
    Windows 7 · Google Chrome

    istat menu6序列号_木子网

    回复
  2. 头像
    sdanny
    MacOS · Google Chrome

    谢谢分享

    回复