Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 声明包含特殊字符的常量_C# - Fatal编程技术网

C# 声明包含特殊字符的常量

C# 声明包含特殊字符的常量,c#,C#,我有一个包含特殊字符{,[,..的字符串,如下所示: "[{"name":"print","next":"null","proc":"printproc","func":"null"}]" 要将常量字符串指定给变量,我必须执行以下操作: string s = "[{\"name\":\"print\",\"next\":\"null\",\"proc\":\"printproc\",\"func\":\"null\"}]"; 或者编译器会抛出一个错误。是否有一种不那么麻烦的方法来声明常量。我

我有一个包含特殊字符{,[,..的字符串,如下所示:

"[{"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#中遇到过同样的情况吗?他们找到了解决方法吗?

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


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

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


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

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

为了展示这个概念,我在一个简单的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);
        }
    }
}
输出为:

现在我可以在变量周围使用“引号”


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

为了展示这个概念,我在一个简单的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);
        }
    }
}
输出为:

现在我可以在变量周围使用“引号”

  • 您可以放置双量子点:

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

  • 或者,将
    \

    string s=“[{\'name\':\'print\'}]”;

  • 您可以使用此
    而不是

  • 用任何方式分割数据,然后使用它

  • 您可以放置双量子点:

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

  • 或者,将
    \

    string s=“[{\'name\':\'print\'}]”;

  • 您可以使用此
    而不是

  • 用任何方式分割数据,然后使用它


  • 您可以发布错误吗?对于以
    @
    开头的字符串文本,您可以使用两个双引号来转义双引号字符,如
    @“[{”name”“..
    除非您转义引号,否则编译器无法判断引号是否不应该是字符串的结尾。您有一个包含字符串元字符的字符串。没有办法转义它们…用“\”转义双引号”是您的最佳选择。还是将JSON存储在JSON文件中。请发布错误?对于以
    @
    开头的字符串文本,您可以使用两个双引号转义双引号字符,如
    @“[{”name”“..
    除非您转义引号,否则编译器无法判断引号是否不应该是字符串的结尾。您有一个包含字符串元字符的字符串。没有办法转义它们…用“\”转义双引号”是您最好的选择。或者将JSON存储在JSON文件中。令我惊讶的是,它确实有效!我担心我无法将其反序列化回对象,但快速测试表明它确实从字符串中恢复了对象。这是我在测试小数据集时寻找的响应。太棒了!谢谢Chara!令我惊讶的是,它实际上是ork!我担心我无法将其反序列化回对象,但快速测试表明它确实从字符串还原了对象。这是我在测试小数据集时寻找的响应。太棒了!谢谢Chara!