Tôi đang trong quá trình di chuyển một dự án từ Visual Basic sang C # và tôi đã phải thay đổi cách for
khai báo một vòng lặp đang được sử dụng.
Trong VB.NET, for
vòng lặp được khai báo dưới đây:
Dim stringValue As String = "42"
For i As Integer = 1 To 10 - stringValue.Length
stringValue = stringValue & " " & CStr(i)
Console.WriteLine(stringValue)
Next
Đầu ra nào:
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
Trong C #, for
vòng lặp được khai báo dưới đây:
string stringValue = "42";
for (int i = 1; i <= 10 - stringValue.Length; i ++)
{
stringValue = stringValue + " " + i.ToString();
Console.WriteLine(stringValue);
}
Và đầu ra:
42 1
42 1 2
42 1 2 3
Điều này rõ ràng là không chính xác vì vậy tôi đã phải thay đổi mã một chút và bao gồm một biến số nguyên sẽ giữ độ dài của chuỗi.
Vui lòng xem mã bên dưới:
string stringValue = "42";
int stringValueLength = stringValue.Length;
for (int i = 1; i <= 10 - stringValueLength; i ++)
{
stringValue = stringValue + " " + i.ToString();
Console.WriteLine(stringValue);
}
Và đầu ra:
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
Bây giờ câu hỏi của tôi giải quyết xung quanh việc Visual Basic khác với C # như thế nào về Visual Basic bằng cách sử dụng stringValue.Length
điều kiện trong for
vòng lặp mặc dù mỗi lần vòng lặp xảy ra, độ dài của chuỗi thay đổi. Trong khi đó trong C # nếu tôi sử dụng điều kiện stringValue.Length
trong for
vòng lặp, nó sẽ thay đổi giá trị chuỗi ban đầu mỗi khi vòng lặp xảy ra. Tại sao thế này?