7

次のコードを見てください。

C#

 string[] testString = new string[jobs.Count];

同等の VB.Net

Dim testString() As String = New String(jobs.Count - 1) {}

新しい配列の作成中に、vb.net で「jobs.Count」ではなく「jobs.Count - 1」を使用するのはなぜですか?

4

3 に答える 3

14

VB.NET では配列宣言の数値は「最大インデックス」を意味しますが、C# では「要素数」を意味します。

于 2013-04-08T09:32:31.007 に答える
6

C# では、配列には指定した要素の数が含まれます。

string[] array = new string[2]; // will have two element [0] and [1]

VB.NET では、配列には指定した要素数に 1 を加えた数 (最大インデックス値を指定) が含まれます。

Dim array(2) As String // will have three elements (0), (1) and (2)
于 2013-04-08T09:34:49.683 に答える
2

あなたのC#コードサンプルでは、

string testString = new string[jobs.Count];

これは、文字列の配列を作成するコンストラクタです。

VB.Net の例では、

Dim testString As String = New String(jobs.Count - 1) {}

String括弧内に宣言された文字列の長さを持つ新しいオブジェクトを参照しています。

VB.Net での配列を作成する場合は、次のStringようにする必要があります。

Dim testString (jobs.Count) As String

以下のサポート リンクを参照してください: VB.Net C#

于 2013-04-08T09:38:11.290 に答える