Operatorüberladung

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Kurzes Tutorial zum überladen der Operator Methoden.

    Quellcode

    1. //Eine normale Klasse zur Darstellung eines Bruchs
    2. Public Class Bruch
    3. Sub New(ByVal Zähler As Double, ByVal Nenner As Double)
    4. Me.Zähler = Zähler
    5. Me.Nenner = Nenner
    6. End Sub
    7. Private _Zähler As Double
    8. Public Property Zähler As Double
    9. Get
    10. Return _Zähler
    11. End Get
    12. Protected Set(ByVal value As Double)
    13. _Zähler = value
    14. End Set
    15. End Property
    16. Private _Nenner As Double
    17. Public Property Nenner As Double
    18. Get
    19. Return _Nenner
    20. End Get
    21. Protected Set(ByVal value As Double)
    22. _Nenner = value
    23. End Set
    24. End Property
    25. Public ReadOnly Property AlsZahl As Double
    26. Get
    27. Return Zähler / Nenner
    28. End Get
    29. End Property
    30. Public ReadOnly Property AlsString As String
    31. Get
    32. Return Zähler & "/" & Nenner
    33. End Get
    34. End Property
    35. End Class
    Alles anzeigen


    Quellcode

    1. 'Die Operatormethoden sind immer statisch (Shared).
    2. Public Shared Operator +(ByVal lhs As Bruch, ByVal rhs As Bruch) As Bruch
    3. 'Hier wird das Rückgabeobjekt erstellt und ausgerechnet.
    4. Dim nZähler As Double = (lhs.Zähler * rhs.Nenner) + (rhs.Zähler * lhs.Nenner)
    5. Dim nNenner As Double = lhs.Nenner * rhs.Nenner
    6. Return New Bruch(nZähler, nNenner)
    7. End Operator


    Hinter jedem Operator ist eine ganz normale Methode mit Parametern.
    Bei dem + Operator hat die Methode 2 Parameter, welche angeben, welche 2 Werte mit einander addiert werden, deshalb ist die linke Seite Parameter 1 und die rechte Seite Parameter 2 (lhs = Left Hand Side | rhs = Right Hand Side) lhs 2 + 3 rhs
    Der Rückgabewert der Methode ist demnach logischerweise das Ergebnis.

    Manche Methoden können nur Boolean zurückgeben (z.B. > oder <).

    Damit man die Instazen der Klasse Bruch addieren kann, kommt die + Methode in die Bruch Klasse.

    8.007 mal gelesen