7

看看下面的代码,

C#

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

等效 VB.Net

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

为什么在创建新数组时在 vb.net 中使用 'jobs.Count - 1' 而不是 'jobs.Count'?

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 中,数组具有您提供的元素数量加一(您指定最大索引值):

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对象,其括号中声明的字符串长度。

如果你想String在 VB.Net 中创建一个数组,它必须是这样的:

Dim testString (jobs.Count) As String

see supporting links below: VB.Net C#

于 2013-04-08T09:38:11.290 回答