JavascriptProva

venerdì 2 agosto 2013

Overloading (un po' maldestro, direi) applicato al mio esempio delle figure geometriche

Un overloading un po' "maldestro", direi...

Ho sovraccaricato la funzione Area() in modo da potere, con l'aggiunta di un parametro qualunque, avere il risultato intero anzichè decimale.
Non mi piace molto, perchè il parametro c'entra un po' come un cavolo a merenda...
Comunque il meccanismo dell'overloading funziona: se c'è il parametro l'area viene calcolata come Integer, se non c'è viene calcolata come Double.
Module Module1

    Sub Main()
        Dim mioTriangolo As New Triangolo(5.5, 3)
        Console.WriteLine(mioTriangolo.Area())
        Console.ReadKey()
        Console.WriteLine(mioTriangolo.Area(""))
        Console.ReadKey()
    End Sub

End Module



MustInherit Class figura
    Protected base As Double
    Protected altezza As Double

    Sub New(ByVal b As Double, ByVal a As Double)
        base = b
        altezza = a
    End Sub

    MustOverride Function Area() As Double
    MustOverride Function Area(ByVal p As String) As Integer
End Class



Class Triangolo
    Inherits figura

    Sub New(ByVal b As Double, ByVal a As Double)
        MyBase.New(b, a)
    End Sub


    Public Overrides Function Area() As Double
        Return base * altezza / 2
    End Function

    Public Overrides Function Area(ByVal par As String) As Integer
        Return base * altezza / 2
    End Function
End Class
Ed ecco il calcolo come Double e come Integer.
8,25
8



Nessun commento:

Posta un commento