ฉันอยู่ระหว่างการย้ายโปรเจ็กต์จาก Visual Basic เป็น C # และฉันต้องเปลี่ยนวิธีการประกาศfor
ลูปที่ใช้
ใน VB.NET for
ลูปถูกประกาศไว้ด้านล่าง:
Dim stringValue As String = "42"
For i As Integer = 1 To 10 - stringValue.Length
stringValue = stringValue & " " & CStr(i)
Console.WriteLine(stringValue)
Next
ผลลัพธ์ใด:
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 # for
ลูปถูกประกาศไว้ด้านล่าง:
string stringValue = "42";
for (int i = 1; i <= 10 - stringValue.Length; i ++)
{
stringValue = stringValue + " " + i.ToString();
Console.WriteLine(stringValue);
}
และผลลัพธ์:
42 1
42 1 2
42 1 2 3
เห็นได้ชัดว่าสิ่งนี้ไม่ถูกต้องดังนั้นฉันจึงต้องเปลี่ยนรหัสเล็กน้อยและรวมตัวแปรจำนวนเต็มที่จะรักษาความยาวของสตริง
โปรดดูรหัสด้านล่าง:
string stringValue = "42";
int stringValueLength = stringValue.Length;
for (int i = 1; i <= 10 - stringValueLength; i ++)
{
stringValue = stringValue + " " + i.ToString();
Console.WriteLine(stringValue);
}
และผลลัพธ์:
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
ตอนนี้คำถามของฉันได้รับการแก้ไขว่า Visual Basic แตกต่างจาก C # อย่างไรในแง่ของ Visual Basic โดยใช้stringValue.Length
เงื่อนไขในfor
ลูปแม้ว่าทุกครั้งที่การวนซ้ำเกิดขึ้นความยาวของสตริงจะเปลี่ยนไป ในขณะที่ C # ถ้าฉันใช้stringValue.Length
ในfor
เงื่อนไขลูปมันจะเปลี่ยนค่าสตริงเริ่มต้นทุกครั้งที่ลูปเกิดขึ้น ทำไมถึงเป็นแบบนี้?