Je suis en train de migrer un projet de Visual Basic vers C # et j'ai dû changer la façon dont une for
boucle utilisée est déclarée.
Dans VB.NET, la for
boucle est déclarée ci-dessous:
Dim stringValue As String = "42"
For i As Integer = 1 To 10 - stringValue.Length
stringValue = stringValue & " " & CStr(i)
Console.WriteLine(stringValue)
Next
Quelles sorties:
42 1
42 1 2
42 1 2 3
42 1 2 3 4
42 1 2 3 4 5
42 1 2 3 4 5 6
42 1 2 3 4 5 6 7
42 1 2 3 4 5 6 7 8
En C #, la for
boucle est déclarée ci-dessous:
string stringValue = "42";
for (int i = 1; i <= 10 - stringValue.Length; i ++)
{
stringValue = stringValue + " " + i.ToString();
Console.WriteLine(stringValue);
}
Et la sortie:
42 1
42 1 2
42 1 2 3
Ce n'est évidemment pas correct, j'ai donc dû modifier légèrement le code et j'ai inclus une variable entière qui contiendrait la longueur de la chaîne.
Veuillez consulter le code ci-dessous:
string stringValue = "42";
int stringValueLength = stringValue.Length;
for (int i = 1; i <= 10 - stringValueLength; i ++)
{
stringValue = stringValue + " " + i.ToString();
Console.WriteLine(stringValue);
}
Et la sortie:
42 1
42 1 2
42 1 2 3
42 1 2 3 4
42 1 2 3 4 5
42 1 2 3 4 5 6
42 1 2 3 4 5 6 7
42 1 2 3 4 5 6 7 8
Maintenant, ma question résout en quoi Visual Basic diffère de C # en termes de Visual Basic en utilisant la stringValue.Length
condition dans la for
boucle même si chaque fois que la boucle se produit, la longueur de la chaîne change. Alors que dans C # si j'utilise la stringValue.Length
dans la for
condition de la boucle , il modifie la valeur de chaîne initiale chaque fois que la boucle se produit. Pourquoi est-ce?