Bir projeyi Visual Basic'ten C #'ye geçirme sürecindeyim ve for
kullanılan bir döngünün nasıl bildirildiğini değiştirmek zorunda kaldım .
VB.NET'te for
döngü aşağıda açıklanmıştır:
Dim stringValue As String = "42"
For i As Integer = 1 To 10 - stringValue.Length
stringValue = stringValue & " " & CStr(i)
Console.WriteLine(stringValue)
Next
Hangi çıktılar:
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
C # 'da for
döngü aşağıda bildirilmiştir:
string stringValue = "42";
for (int i = 1; i <= 10 - stringValue.Length; i ++)
{
stringValue = stringValue + " " + i.ToString();
Console.WriteLine(stringValue);
}
Ve çıktı:
42 1
42 1 2
42 1 2 3
Bu açıkça doğru değil, bu yüzden kodu çok az değiştirmek zorunda kaldım ve dizenin uzunluğunu tutacak bir tamsayı değişkeni dahil ettim.
Lütfen aşağıdaki koda bakın:
string stringValue = "42";
int stringValueLength = stringValue.Length;
for (int i = 1; i <= 10 - stringValueLength; i ++)
{
stringValue = stringValue + " " + i.ToString();
Console.WriteLine(stringValue);
}
Ve çıktı:
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
Şimdi sorum stringValue.Length
, for
döngü her oluştuğunda dizenin uzunluğu değişse de , Visual Basic'in Visual Basic açısından C # 'dan nasıl farklılaştığını çözüyor . C # 'da ise stringValue.Length
, for
döngü koşulunu kullanırsam, döngü her gerçekleştiğinde ilk dize değerini değiştirir. Bu neden?