vb.net оператор преинкремента в функции arg


Sub V(N As Integer)
    Console.WriteLine(N)
End Sub

Sub Main()
    Dim N = 0
    For I As Integer = 1 To 5
        V(++N)
    Next
End Sub

VB.Net не имеет оператора preincrement, ++N не будет работать вне аргумента функции. Почему этот код компилируется?

1 2

1 ответ:

В отличие от C#, в нем нет оператора инкремента. Vb.Net, the +/- символы рассматриваются как положительные / отрицательные арифметические знаки (или сумма / остаток, если они записаны между пробелами, или если они записаны перед символом присвоения, например +=/-=), Тем не менее, вы можете получить то, что вы хотите аналогичным образом, используя система.нарезка резьбы.Сблокированный.Инкремент функция.

Imports System.Threading.Interlocked

Module Module1

    Sub Main()
        Dim value As Integer

        For count As Integer = 1 To 5
            Module1.Method(Increment(value))
        Next count 
    End Sub

    Sub Method(ByVal value As Integer)
        Console.WriteLine(value)
    End Sub

End Module