我有一个VB程序,它将一个字符串作为输入传递给C#方法。输入可能包含转义字符,例如\ n,C#方法会尝试拆分它。
示例VB方法:
Module VBClass
Sub Main()
Dim c As CSharpClass = New CSharpClass()
c.MyMethod("Hello\nWorld\nFrom\nMike")
End Sub
End Module
示例C#方法:
public class CSharpClass
{
public void MyMethod(string input)
{
string[] sSplit = input.Split('\n');
}
}
然而,当C#方法接收到字符串时,它的形式是" Hello \\ nWorld"它不会在分隔符上分裂\ n。
从我用谷歌搜索的各个帖子中,我认为VB将转义序列视为字符串的常规部分,因此C#会在其上抛出双斜线以对其进行字面处理。
如果我的猜测甚至接近事实,是否有办法传递字符串以便C#可以在\ n上分割?
编辑:感谢您的建议。我已经向VB Sub添加了一些测试调用,并将使用第三个测试调用(替换为vbLf)。 c.MyMethod("Hello" + Environment.NewLine + "World")
c.MyMethod("Hello" + vbLf + "World")
c.MyMethod("Hello\nWorld\nFrom\nMike".Replace("\n", vbLf))
答案 0 :(得分:1)
抱歉,我在StackOverflow上发布新内容。我想出了我需要的东西,并认为我应该添加帖子而不是编辑我原来的回复。
在我将其传递给C#方法之前,我将在我的字符串上运行.Replace。它已正确收到,可以成功拆分。感谢Sehnsucht建议vbLf,因为Environment.Newline并不适合我。
MyStringInput.Replace("\n", vbLf)