文字列を入力としてC#メソッドに渡すVBプログラムがあります。入力には、C#メソッドが分割しようとする\ nのようなエスケープ文字を含めることができます。VB.NETからC#.NETに改行文字を含む文字列を渡す
例VB法:
Module VBClass
Sub Main()
Dim c As CSharpClass = New CSharpClass()
c.MyMethod("Hello\nWorld\nFrom\nMike")
End Sub
End Module
例C#方法:C#メソッドは文字列を受信したとき
public class CSharpClass
{
public void MyMethod(string input)
{
string[] sSplit = input.Split('\n');
}
}
しかし、それは形式だではないだろう "こんにちは\\ nWorld"区切り文字で分割します。\ n
私はGoogledの様々な投稿から、VBはエスケープシーケンスを文字列の正規の部分として扱い、C#は文字通りそれを処理するためにダブルスラッシュをスローすると思います。
私の推測が真実に近い場合でも、C#が\ nで分割できるように文字列を渡す方法はありますか?
編集:ありがとうございます。私はいくつかのテスト呼び出しをVB Subに追加して、3つ目のもの(vbLfで置き換えます)を実行します。
c.MyMethod("Hello" + Environment.NewLine + "World")
c.MyMethod("Hello" + vbLf + "World")
c.MyMethod("Hello\nWorld\nFrom\nMike".Replace("\n", vbLf))
あなたの前提は間違っています。あなたの問題を示すコンパイル可能なコードを投稿するのはどうですか? –
VB.NETは\ charをエスケープ文字と見なしません。それは文字通り\として扱われるので、C#側で正しい値を受け取っています。 – wdosanjos
'CSharpMethod(" Hello "&vbLf&" World ")' – Sehnsucht