C #:
static class Module1
{
public static void Main()
{
for (index = 1; index <= GetCount(); index++) {
Console.WriteLine("For {0}", index);
}
Console.ReadKey();
}
public static int GetCount()
{
Console.WriteLine("GetCount");
return 10;
}
}
Результат (C # повторно проверяет условие):
GetCount
For 1
GetCount
For 2
GetCount
For 3
GetCount
For 4
GetCount
For 5
GetCount
For 6
GetCount
For 7
GetCount
For 8
GetCount
For 9
GetCount
For 10
GetCount
VB.NET
Module Module1
Sub Main()
For index = 1 To GetCount()
Console.WriteLine("For {0}", index)
Next
Console.ReadKey()
End Sub
Public Function GetCount() As Integer
Console.WriteLine("GetCount")
Return 10
End Function
End Module
Результат (VB.NET не проверяет повторно условие):
GetCount
For 1
For 2
For 3
For 4
For 5
For 6
For 7
For 8
For 9
For 10
a) Почему Разве VB.NET не соблюдает «правило» повторной проверки условия For на каждой итерации?
b) Есть ли способ заставить VB перепроверить это условие?