UserName = String(33, 0)
VB 6.0 での意味と、C# での同等の意味は何ですか。
VB 6.0 コードを C# に変換中にエラーが発生するのを助けてください。
前もって感謝します。
String
VB6 では、指定された長さの繰り返し文字列を含む文字列を返す関数です。
String(number,character)
例:
strTest = String(5, "a")
' strTest = "aaaaa"
strTest = String(5, 97)
' strTest = "aaaaa" (97 is the ASCII code for "a")
この場合、String(33,0)
は 33 個の null 文字を含む文字列を返します。
C# で同等のものは次のようになります。
UserName = new String('\0', 33);
VB6 では、その関数は 33 文字を含む文字列を作成し、そのすべての文字の序数値はゼロです。
通常、バッファを埋めるネイティブ関数に文字列を渡そうとしているため、これを行います。C# でこれに最も近いのはStringBuilder
、ap/invoke 関数呼び出しでネイティブ コードに渡すインスタンスを作成することです。
その 1 行のコードを直接翻訳しても特に役に立たないと思います。そのコードはコンテキスト内に存在し、コンテキストが重要であると強く疑っています。
では、33 個の null 文字を使用して新しい C#string
を作成することはできますが、そのポイントは何でしょうか? .net 文字列は不変であるため、あまり興味を引くことはできません。あなたの VB6 コードでは、確実にそのオブジェクトを変更することになるでしょうStringBuilder
。私の見解では、それが最も可能性の高いツールです。