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

本文关键字:转换 NET 字符串 VB | 更新日期: 2023-09-27 18:09:27

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

字符串的输出应该和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'"'""

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

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

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

在输出中,它将消除每对

中的反斜杠

在c#中,您可以在字符串前面放置@,并使用双引号生成类似VB的字符串。在此语法中,新行也可用作返回键。

,

    string str = @"Here is a quote "" 
and a new line";