Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.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#_String Literals - Fatal编程技术网

C#-如何将转义字符串转换为文本字符串?

C#-如何将转义字符串转换为文本字符串?,c#,string-literals,C#,String Literals,可能重复: 如何在运行时转换从文件读取的转义字符串,例如 "Line1\nLine2" 转换为其文字值: Line1 Line2 令人惊讶的是,我发现了一个使用CSharpCodeProvider()执行相反操作的示例,这似乎是更困难的转换。为了做相反的事情,我似乎需要生成代码来定义一个类并在内存中编译它,或者执行一系列.Replace()调用,希望我不会错过任何转义序列。将转义值替换为\n static void Main(string[] args) { var test =

可能重复:

如何在运行时转换从文件读取的转义字符串,例如

"Line1\nLine2"
转换为其文字值:

Line1
Line2

令人惊讶的是,我发现了一个使用CSharpCodeProvider()执行相反操作的示例,这似乎是更困难的转换。为了做相反的事情,我似乎需要生成代码来定义一个类并在内存中编译它,或者执行一系列.Replace()调用,希望我不会错过任何转义序列。

将转义值替换为
\n

static void Main(string[] args)
{
    var test = "Line1\\nLine2";

    // Line1\nLine2
    Console.WriteLine(test);

    // Line1
    // Line2
    Console.WriteLine(test.Replace("\\n", Environment.NewLine));

    Console.ReadKey();
}

CSharpCodeProvider听起来确实可以做到这一点。但是,在使用它之前,我会问两个问题:它是否需要精确的C#字符串文字语法,以及输入文件是否可信

CSharpCodeProvider显然提供了C#编译器的确切语法,但在我看来,通过这种途径向您的进程注入一些代码相对比较容易


Javascript字符串文字语法与C字符串文字语法非常接近,并且.NET包含一个类,该类可以解析此类字符串文字,而无需将其作为代码注入正在运行的进程。

我认为他的意思是将
“Line1\\nLine2”
转换为
“Line1\nLine2”
。您的目标是什么?如果包含一个类似于
string s=“Line\nLine2”的语句在您的代码中,然后编译并运行它,在内存中运行时,变量s包含您要创建的内容。我正在处理正则表达式,从源代码复制它们以测试它们,然后将它们粘贴回并进行修改。因为它们是正则表达式,所以需要来回精确翻译。这是一个肮脏的小工具,用来简化这个过程。这是正确的答案。这不是一个重复和代码的答案是有点荒谬的原因肯给出。