2013-04-08 11 views
7

Werfen Sie einen Blick auf den folgenden Code.,Startindex von Arrays in C# und VB.Net

C#

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

Equivalent VB.Net

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

Warum es nimmt 'jobs.Count - 1' stattdessen 'jobs.Count' in vb.net beim Erstellen neuer Arrays?

+2

Bitte überprüfen Sie Ihre Frage. Beide Beispiele ergeben keinen Sinn. Sie sind beide nicht als Arrays definiert. –

Antwort

13

In VB.NET die Zahl in der Array-Deklaration "max-Index" bedeutet, aber in C# bedeutet es "Anzahl der Elemente"

4

In C# das Array die Anzahl von Elementen haben Sie bieten:

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

In VB.NET das Array die Anzahl der Elemente hat Sie zur Verfügung stellen, plus eins (Sie max Indexwert angeben):

Dim array(2) As String // will have three elements (0), (1) and (2) 
2

Da mit Ihrem C# Codebeispiel

string testString = new string[jobs.Count]; 

Das ist ein Konstruktor zum Erstellen eines Array von Zeichenfolge.

Während mit dem VB.Net Beispiel

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

Sie beziehen sich mit einem neuen String Objekt mit der Länge der Zeichenfolge in der Klammer deklariert.

Wenn Sie ein Array von String in VB.Net erstellen möchten es so sein muss:

Dim testString (jobs.Count) As String 

siehe Unterstützung Links unten: VB.Net C#