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 ClassEd ecco il calcolo come Double e come Integer.
8,25 8
Nessun commento:
Posta un commento