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);