声明包含特殊字符的常量

时间:2016-02-10 20:20:56

标签: c#

我有一个字符串,其中包含特殊字符{,[,..如下:

"[{"name":"print","next":"null","proc":"printproc","func":"null"}]"

要将常量字符串赋值给变量,我必须执行以下操作:

string s = "[{\"name\":\"print\",\"next\":\"null\",\"proc\":\"printproc\",\"func\":\"null\"}]";

或编译器会抛出错误。是否有一种不那么繁琐的方式来声明常量。我试图在字符串的开头使用@:

string s = @"[{"name":"print","next":"null","proc":"printproc","func":"null"}]";

但我也遇到了编译器错误。将常量保存到文本文件中并从中加载它将起作用,但对我来说可能是一种过度杀伤力。有没有人在C#中遇到过相同的场景并让他们想出一个解决方法?

3 个答案:

答案 0 :(得分:3)

您是否尝试过使用单引号来包装属性名称/值?

e.g。 string s = @"[{'name':'print','next':'null','proc':'printproc','func':'null'}]"

答案 1 :(得分:1)

  1. 你可以放双重票:

    string s = @"[{""name"":""print""}]";

  2. 或者,放\

    string s = "[{\"name\":\"print\"}]";

  3. 您可以使用此'代替"

  4. 以任何方式拆分您的数据,然后使用它

答案 2 :(得分:0)

您可以为所需的每个特殊字符创建一个变量。

为了展示这个概念,我在一个简单的C#控制台应用程序中进行了测试。

using System;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string quot = "\"";
            string compound = "Now I can use " + quot + "quotation marks" + quot + " around a variable";
            Console.WriteLine(compound);
        }
    }
}

输出结果为:

  

现在我可以在变量

周围使用“引号”