使用双引号和反斜杠将字符串从VB.NET转换为C#

时间:2015-08-24 15:09:05

标签: c# vb.net string

我很难将我的字符串从vb.net正确转换为C#。

String应该像vb.net中的那样输出。任何帮助将不胜感激。

这是vb.net字符串

Dim cmdS As String = "-on """ & path & """ -ot file -actn ace -ace ""n:DOMAIN\" & user & ";p:change"""

调试字符串看起来像这样

"-on "\\lex-data\Home\Thth" -ot file -actn ace -ace "n:DOMAIN\thth;p:change""

现在在C#中我试试这个

string cmdS = "-on \"" + path + "\" -ot file -actn ace -ace \"n:DOMAIN\\" + username + ";p:change\"\"";

c#

的输出
"-on \"\\\\\\\\lex-data\\Home\\Thth\" -ot file -actn ace -ace \"n:DOMAIN\\thth;p:change\"\""

我尝试其他字符串变体,但最糟糕的是它添加了更多的反斜杠。

1 个答案:

答案 0 :(得分:2)

VB.Net使用双引号作为转义字符,但C#使用反斜杠。因此,在您的VB.Net字符串中,我们需要找出哪些双引号用作转义字符。通过分析VB.Net中的输出字符串(上面的问题),字符串中有四(4)个双引号(通过忽略外部引号),这意味着VB.Net使用了四个双引号字符作为转义字符,因此通过替换它们反斜杠的四个双引号(在C#中)我们在C#中得到字符串。

string str2 = "-on \"" + path + "\" -ot file -actn ace -ace \"n:DOMAIN\\" 
              + user + ";p:change\"";

现在在C#中,反斜杠用作转义字符,因此当我们要打印单反斜杠时,反斜杠会被使用两次。检查此字符串

string alpha = "Path to the verses folder D:\\Data\\Islamic\\verses";

在输出中,它将消除每对中的反斜杠