Saya sedang dalam proses migrasi proyek dari Visual Basic ke C # dan saya harus mengubah cara a for
deklarasi loop yang digunakan.
Di VB.NET, for
loop dideklarasikan di bawah ini:
Dim stringValue As String = "42"
For i As Integer = 1 To 10 - stringValue.Length
stringValue = stringValue & " " & CStr(i)
Console.WriteLine(stringValue)
Next
Output mana:
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
Di C # for
loop dideklarasikan di bawah ini:
string stringValue = "42";
for (int i = 1; i <= 10 - stringValue.Length; i ++)
{
stringValue = stringValue + " " + i.ToString();
Console.WriteLine(stringValue);
}
Dan hasilnya:
42 1
42 1 2
42 1 2 3
Ini jelas tidak benar jadi saya harus mengubah kode sedikit dan memasukkan variabel integer yang akan menahan panjang string.
Silakan lihat kode di bawah ini:
string stringValue = "42";
int stringValueLength = stringValue.Length;
for (int i = 1; i <= 10 - stringValueLength; i ++)
{
stringValue = stringValue + " " + i.ToString();
Console.WriteLine(stringValue);
}
Dan hasilnya:
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
Sekarang pertanyaan saya menyelesaikan sekitar bagaimana Visual Basic berbeda dengan C # dalam hal Visual Basic menggunakan stringValue.Length
kondisi dalam for
loop meskipun setiap kali loop terjadi panjang string berubah. Sedangkan di C # jika saya menggunakan kondisi stringValue.Length
dalam for
loop itu mengubah nilai string awal setiap kali loop terjadi. Kenapa ini?