我很难将我的字符串从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\"\""
我尝试其他字符串变体,但最糟糕的是它添加了更多的反斜杠。
答案 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";
在输出中,它将消除每对中的反斜杠