4

UserName = String(33, 0)VB 6.0 での意味と、C# での同等の意味は何ですか。

VB 6.0 コードを C# に変換中にエラーが発生するのを助けてください。

前もって感謝します。

4

4 に答える 4

6

StringVB6 では、指定された長さの繰り返し文字列を含む文字列を返す関数です。

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);
于 2013-07-25T11:10:41.957 に答える
5

VB6 では、その関数は 33 文字を含む文字列を作成し、そのすべての文字の序数値はゼロです。

通常、バッファを埋めるネイティブ関数に文字列を渡そうとしているため、これを行います。C# でこれに最も近いのはStringBuilder、ap/invoke 関数呼び出しでネイティブ コードに渡すインスタンスを作成することです。

その 1 行のコードを直接翻訳しても特に役に立たないと思います。そのコードはコンテキスト内に存在し、コンテキストが重要であると強く疑っています。

では、33 個の null 文字を使用して新しい C#stringを作成することはできますが、そのポイントは何でしょうか? .net 文字列は不変であるため、あまり興味を引くことはできません。あなたの VB6 コードでは、確実にそのオブジェクトを変更することになるでしょうStringBuilder。私の見解では、それが最も可能性の高いツールです。

于 2013-07-25T11:09:16.567 に答える
2

私はあなたが探していると信じています:

UserName = new String((Char)0, 33);

VB6メソッドが何をしたかについては、これを参照してください。

于 2013-07-25T11:10:08.137 に答える