【问题标题】:Escaping arguments for string.Format in a C# multiline verbatim string在 C# 多行逐字字符串中转义 string.Format 的参数
【发布时间】:2010-10-08 19:15:11
【问题描述】:
string template = @"  
          {  
            argument1   = ""{0}"";
            argument2   = {1};  
          }";

当我使用 string.Format 将其格式化为通常的字符串时,我自然会得到一个异常,即输入字符串的格式不正确。我尝试按照 msdn 文档中的建议转义参数,例如“{{0}}”甚至“{{{0}}}”,但我仍然遇到相同的异常。关于如何格式化这样一个字符串的任何想法?

谢谢!

P.S.[edit] 我的原始字符串用于生成 WCAT 场景文件:

 string scenarioHeaderTemplate = @"
    scenario
    {{
       name    = ""WCAT Scenario"";
       warmup      = {0};
       duration    = {1};
       cooldown    = {2};

       default
       {
           version     = HTTP11;
           setheader
           {
               name    = ""Connection"";
               value   = ""keep-alive"";
           }
           statuscode  = 200;
           close       = ka;
       }
     }}";

如果我尝试 string.Format(scenarioHeaderTemplate, 10, 10, 10);

【问题讨论】:

    标签: c# string string.format


    【解决方案1】:

    问题是开括号和闭括号。您需要引用这些,否则 Format 会认为您正在开始一个参数说明符。

    string template = @"   
              {{   
                argument1   = ""{0}""; 
                argument2   = {1};   
              }}"; 
    

    【讨论】:

      猜你喜欢
      • 2013-08-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-13
      • 1970-01-01
      相关资源
      最近更新 更多