【问题标题】:Formatting string - input string was not in correct format格式化字符串 - 输入字符串的格式不正确
【发布时间】:2020-08-15 21:15:29
【问题描述】:

我想要一个函数来接收一个字符串并在 C# 中将其格式化为以下格式的另一个字符串:(测试是一个输入变量)

output:
@"{MyKey=testing}"

我的简单程序如下:

class Program
{
    static void Main(string[] args)
    {
        string s = test("testing");
    }
    private static string test(string myKey)
    {
        string s = string.Format("@{\"MyKey={0}\"}", myKey);
        return s;
    }
}

没有语法错误,但我得到了这个运行时错误:

我知道字符串包含特殊字符,但我想知道是否可以使用 string.Format 来创建我想要的输出?我应该如何正确格式化字符串?

【问题讨论】:

    标签: c# string.format


    【解决方案1】:

    您需要通过使用双花括号来转义那些应该是字符串一部分的花括号。查看更多here

    class Program
    {
        static void Main(string[] args)
        {
            string s = test("testing");
            s.Dump();
        }
        private static string test(string myKey)
        {
            string s = string.Format("@{{\"MyKey={0}\"}}", myKey);
            return s;
        }
    }
    

    你也可以像这样使用字符串插值:

    string s = $"@{{\"MyKey={myKey}\"}}";
    

    【讨论】:

    • 关于为什么使用双卷曲解决问题的说明可能有用(即,这是转义序列,可能带有文档链接)
    猜你喜欢
    • 2018-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-23
    • 2013-08-22
    相关资源
    最近更新 更多