2016-04-01 7 views
2
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 hat keinen Vorinkrementierungsoperator, ++ N würde außerhalb eines Funktionsarguments nicht funktionieren. Warum kompiliert dieser Code?vb.net Vorinkrementierer in Funktion arg

+1

Hinweis, es kompilieren auch wenn Sie nur + N oder +++ N schreiben – Steve

Antwort

1

Im Gegensatz zu C# gibt es keinen Inkrementoperator in Vb.Net, die +/- Symbole als positive/negative arithmetische Zeichen (oder Summe/Rest behandelt werden, wenn zwischen blankspaces schreibt, oder wenn wie += vor einem assignation Symbol geschrieben/-=), jedoch können Sie in ähnlicher Weise mit der System.threading.Interlocked.Increment Funktion erreichen, was Sie wollen.

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 
+0

Im Gegensatz zu der - Operator („Flip“ das Vorzeichen einer Zahl) ein Operator + irgendwie sinnlos scheint? Ich denke, eine Frage, warum ein operator, der wirklich nichts tut, als offtopic betrachtet wird? – user6144226