Prä- und Postinkrementoperatoren

  • VB.NET

Es gibt 11 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Prä- und Postinkrementoperatoren

    Moin,

    ich hatte schon vor einiger Zeit über dieses Thema philosophiert, jetzt bin ich gerade im Code mal wieder darauf gestoßen.

    In C# gibt es ja sowohl Prä- als auch Postinkrementoperatoren, siehe hier.

    Jetzt stellt sich mir nur die Frage, warum sowas nicht auch in VB.NET implementiert ist. Zumindest auf FW3.5 konnte ich kein Äquivalent finden. Hat sich mit 4 oder 4.5 da zwischenzeitlich etwas geändert? Oder darf man weiter á la += schreiben?

    mfg,
    Lukas
    „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

    -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.
    Tja, noch ein Grund mal auf C# umzusteigen. Hat sich Microsoft zu dem Thema mal geäußert o.ä.?
    „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

    -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.
    VB ist es einfach nicht wert.

    Okay, ernsthaft: Die Standard-Inkrementoren (++a und a++) passen irgendwie nicht in die Syntax.

    Nur wegen den Inkrementoren lohnt es sich aber nicht, eine andere Sprache zu lernen. :P
    stackoverflow.com/questions/63…rement-operator-in-vb-net
    Von meinem iPhone gesendet
    Ja, dachte mir schon, dass es da vielleicht Syntaxprobleme gibt.

    C# wird mir aber allgemein sympathischer, nur wegen den Inkrementoren werde ich auch nicht umsteigen ;)
    „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

    -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.
    War bei mir das Selbe. Gab irgendwann so viele Gründe auf C# umzusteigen, da ich irgendwann einfach das ganze then endif end sub usw. nicht mehr sehen konnte. Und man mag es in dem Forum vll. nicht gern hören aber bin sehr froh auf c# umgestiegen zu sein :) <-- viele Vorteile


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.
    Ich arbeite mittlerweile seit fast zwei Jahren in VB, und die kleinen Abstecher Richtung C# zwischendurch haben mir gut gefallen. Mittlerweile gefällt mir auch die Syntax von C# besser (oder fällt mir leichter), VB hat ja eine recht eigene Syntax.
    „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

    -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.
    VB ist ja nun mal historisch gewachsen und die Philosophie für VB ist von Bill eher auf Kompatibilität denn auf Kreativität ausgerichtet.
    Ich denke nicht, dass da irgendwann etwas in diese Richtung geht.
    Außerdem hat ein Prä-Operator nur Zweck, wenn Du ihn in einer Codezeile als Index oder so verwendest, und das ist in VB völlig undenkbar.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    ich hab mir eine Klasse Counter geschrieben, die In-/De-crementieren kann

    VB.NET-Quellcode

    1. Public Class Counter
    2. Private _Value As Integer = 0
    3. <DebuggerStepThrough()> _
    4. Public Function Up() As Integer
    5. Up = _Value
    6. _Value += 1
    7. End Function
    8. <DebuggerStepThrough()> _
    9. Public Function Down() As Integer
    10. Down = _Value
    11. _Value -= 1
    12. End Function
    13. <DebuggerStepThrough()> _
    14. Public Shared Widening Operator CType(ByVal i As Integer) As Counter
    15. Return New Counter() With {._Value = i}
    16. End Operator
    17. <DebuggerStepThrough()> _
    18. Public Shared Widening Operator CType(ByVal i As Counter) As Integer
    19. Return i._Value
    20. End Operator
    21. <DebuggerStepThrough()> _
    22. Public Shared Operator &(ByVal left As String, ByVal right As Counter) As String
    23. Return right._Value.ToString
    24. End Operator
    25. <DebuggerStepThrough()> _
    26. Public Overrides Function ToString() As String
    27. Return _Value.ToString()
    28. End Function
    29. End Class
    Aufruf

    VB.NET-Quellcode

    1. Dim cnt = New Counter
    2. For Each tb As DataTable In _DataSet.GetRankedTables
    3. Dim ta = New TableAdapter(tb, Me, cnt.Down)
    4. AddHandler ta.RowUpdated, AddressOf _Adapter_RowUpdated
    5. Adapters(tb) = ta
    6. Next
    Für jede DataTable wird hier ein TableAdapter angelegt mit abwärts zählender ID

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „ErfinderDesRades“ ()