C# 为什么要替换\“;对我的案子不起作用吗?

C# 为什么要替换\“;对我的案子不起作用吗?,c#,C#,我正在这样做,就像这样: 但结果仍然是test=“test\”test” 结果应该是test=“testtest”,为什么我的替换不起作用?因为您的字符串实际上是test“test而不是test\”test。反斜杠用于转义双引号,它不在实际字符串中 尝试使用逐字记录字符串: string test = @"test\""test"; // equivalent to test\\\"test 文本test\“test由编译器解析并存储为test”test,因此字符串中没有斜杠不确定是否标记为键

我正在这样做,就像这样:

但结果仍然是
test=“test\”test”


结果应该是
test=“testtest”
,为什么我的替换不起作用?

因为您的字符串实际上是
test“test
而不是
test\”test
。反斜杠用于转义双引号,它不在实际字符串中

尝试使用逐字记录字符串:

string test = @"test\""test"; // equivalent to test\\\"test

文本
test\“test
由编译器解析并存储为
test”test
,因此字符串中没有斜杠不确定是否标记为键入错误…请注意
\“
仅表示
。逐字记录字符串实际上并没有增加多少内容。无论哪种方式,您都必须转义其中一个角色。如果没有逐字记录字符串,它将变成
“test\\”test“
。无论如何,您有权处理该问题-转义字符串已转义:)
string test = @"test\""test"; // equivalent to test\\\"test