2010-09-14 127 views
2

我是c#的新手,所以希望這個對於你們中的一些人來說不是太難。用反斜槓格式化字符串

我試圖建立具有\中有一個字符串,我有困難想起來一個反斜槓露面即使我添加額外的轉義字符或忽略它們放在一起。有人能告訴我我做錯了什麼嗎?

我希望我的字符串是什麼樣子:

"10.20.14.103\sql08" 

我試過到目前爲止:

我增加了一個額外的字符,使編譯器高興,但也沒有逃過它。

ip = string.Format("{0}\\\\{1}", ip, instancename); // output has 2 \'s 

我告訴它忽略逃逸,它決定不理我,而不是

string temp = @"192.168.1.200\sql08"; // output has 2 \'s 

有人可以幫助我理解這一點? (這裏的richtext編輯器似乎比VS2010做得更好,而且比VS2010做的更好,lol)

+0

這樣快回信!我做了一個debug.assert,確實有正確的字符串值。我想這只是你應該知道的有關c#中的可視化器的事情之一,而不是vb。永遠不會想象他們會有不同的表現,但現在我知道了。 – TWood 2010-09-14 18:40:27

回答

13

我猜你被調試器弄糊塗了。

如果將鼠標懸停在VS中的局部變量上,字符串將被轉義,因此單個\將顯示爲\\

要查看您的字符串是真的是,輸出它的某處顯示(例如,到控制檯)或將鼠標懸停在變量上,單擊出現的小放大鏡旁邊的箭頭,然後選擇「文本可視化工具「。

4

如果你正在調試器中查看這些字符串(即將鼠標懸停在變量上或使用手錶) ,調試器將轉義字符添加到顯示字符串,以便它是有效的字符串表達式。如果您想以這種方式逐字查看字符串,請單擊工具提示右側的放大鏡,或者使用字符串查看條目。

3

我猜你正在尋找在調試器的價值觀和看到他們有兩條斜線。

這很正常。調試器將顯示兩個斜槓,即使實際的字符串表示只有一個。當習慣調試器時,再來一次。

放心,當你真正使用你的字符串,它們將仍然只有一個斜槓(使用你的方法)。

1
string requiredString = string.Format(@"{0}\\{1}",str1,str2);