Je suis en train de migrer un projet de Visual Basic vers C # et j'ai dû changer la façon dont une forboucle utilisée est déclarée.
Dans VB.NET, la forboucle 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 forboucle 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.Lengthcondition dans la forboucle 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.Lengthdans la forcondition de la boucle , il modifie la valeur de chaîne initiale chaque fois que la boucle se produit. Pourquoi est-ce?