2017-09-05 76 views
-3

我有以下代碼:替換( 「」 「 」\「 」)獲取的價值\「,而不是\」

string a = "\""; 
string b = a.Replace("\"", "\\\""); 

我想在B地與實例\\"值。相反,當執行替換時,b具有\\\"值。

爲什麼會發生這種情況?無論如何,取代\"值,並得到\\"而不是\\\"值?

謝謝

+6

它可能是...確定你看到的不是視覺工作室調試器的洞察力/數據提示,它也顯示轉義版本? – dlatikay

+0

您如何檢查'b'的價值?此外,可能有更適合的方法來轉義您的字符串,而不是您在此嘗試執行的任何操作。 –

+0

你會被越過反斜槓。 – Stuart

回答

0

像@dlatikay說上的評論,因爲我看到在Visual Studio debbuger,調試器再次逃脫字符串轉化\\"價值爲\\\"值。

2

您需要添加2條斜線,如果你想與\\"

你的現有代碼\\\"替換它進行初始化。這意味着一個\\被計算爲一個反斜槓,並且\"被轉義了雙引號。所以,b變成\"。如果你使用\\\\\"。你會得到2個反斜槓和一個雙引號。

string a = "\""; 
    string b = a.Replace("\"", "\\\\\"");