Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [vb.net 2010] Dubbio su overload e polimorfismo(overrides&overridable)
Forum - C# / VB.NET - [vb.net 2010] Dubbio su overload e polimorfismo(overrides&overridable)

Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 1:00
Giovedì, 01/01/1970
Ciao a tutti seguendo un esercizio su eredità e polimorfismo, mi è giunto questa richiesta:

Crea una classe derivata da array list che contenga una collezione di classi persona

Codice sorgente - presumibilmente VB.NET

  1. class Person
  2. '...
  3. End class
  4.  
  5. class ListPerson
  6. inherits arraylist
  7.  
  8. '...
  9.  
  10. End class


e fin qui ci siamo poi mi dice: Applicare il polimorfismo a quest'ultima classe per modificare i seguenti metodi:
Add : in modo che consenta di aggiungere una nuova persona inserendo nome, cognome e
data di nascita direttamente come parametri

Solo che non posso usare il polimorfismo(overrides) in quanto dovrei cambiare i campi della funzione add in questo modo
Codice sorgente - presumibilmente VB.NET

  1. class Person
  2. '...
  3. End class
  4.  
  5. class ListPerson
  6. inherits arraylist
  7.  
  8. public overrides Add(byval Nome as string, byval Cognome as string, Byval Compleanno As string) As integer
  9.  
  10.       Dim P As New Persona(Nome,Cognome,date.parse(Compleanno))
  11.       return mybase.Add(P)
  12.  
  13. End function
  14. '...
  15.  
  16. End class


ma ad avviso del mio cervello e del IDE dovrei usare l'overload, in quanto modifico i parametri ma utilizzo lo stesso identificatore... voi cosa mi consigliate...sono io che faccio pena a programmare o è un errore dell'autore?

Grazie

Ultima modifica effettuata da il 29/09/2012 alle 22:09
PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2763
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 12:04
Domenica, 30/09/2012
questo esercizio aveva senso in un contesto di .NET 1.1, con la versione 2.0 sono stati introdotti i generics e tutto questo non serve più.

ti consiglio di focalizzarti su esercizi diversi e più utili, come ad esempio approfondire pattern di sviluppo come MVC, MVVM e i conseguenti IOC, ServiceLocator, etc...


Ingegnere Informatico
https://ldlagency.it
PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 17:43
Domenica, 30/09/2012
sinceramente stò usando la guida di totem, con il suo eserciziario...insomma stò imparando....e i generics non sono ancora stati trattati D: sempre che ci siano >.<

PM Quote
Avatar
Renny (Normal User)
Expert


Messaggi: 231
Iscritto: 30/07/2011

Segnala al moderatore
Postato alle 19:00
Domenica, 30/09/2012
Certo che ci sono..
E' che magari li stai usando senza saperlo...
Il fatto di usarli renderebbe superfluo creare la classe ListPerson e fare l'overloads del metodo add perché nel momento il cui dichiari una List(of Person) hai un array tipizzato di oggetti person con tutte le funzioni del caso.
In ogni caso, il codice che hai scritto secondo me va bene.
In questo modo tu sai che l'oggetto listperson diventa una lista di oggetti person che tu aggiungi passando alla funzione i parametri necessari per creare un oggetto person (nome, cognome, data nascita). Potresti fare l'overloads del metodo add prevedendo anche una versione che accetta come parametro di ingresso il metodo un oggetto Persona già creato.

Ultima modifica effettuata da Renny il 30/09/2012 alle 19:05


In attesa della fine del mondo, fissata per l'anno prossimo, sono alla ricerca di un notaio con cui fare testamento...
PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 19:15
Domenica, 30/09/2012
Si probabilmente avete ragione voi sul fatto che usare i generics si più vantaggioso, ma io non avendoli ancora minimamente visti nel mio percorso di studio...voglio seguire l'esercizio con l'overloads, poi se mai più avanti quando arriverò ai generics, modificherò il sorgente con loro, ma al momento mi basterebbe sapere se il procedimento con polimorfismo ed ereditarietà è giusto come lo stavo impostando ;) e a quanto mi hai detto, ronny, lo stò facendo :D si bhe dopo per le minuziose rie si può sempre provvedere....

Grazie mille :D

Ultima modifica effettuata da il 30/09/2012 alle 19:17
PM Quote
Avatar
Renny (Normal User)
Expert


Messaggi: 231
Iscritto: 30/07/2011

Segnala al moderatore
Postato alle 22:26
Domenica, 30/09/2012
Intanto è renny
Ma questo codice.. ti funziona?
Codice sorgente - presumibilmente C# / VB.NET

  1. return mybase.Add(P)


Hai dichiarato un arraylist al quale aggiungere gli oggetti?


In attesa della fine del mondo, fissata per l'anno prossimo, sono alla ricerca di un notaio con cui fare testamento...
PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 22:36
Domenica, 30/09/2012
xD Scusa si avevo già corretto il problema, poco dopo aver postato

Codice sorgente - presumibilmente VB.NET

  1. Public Overloads Sub Add(ByVal Nome As String, ByVal Cognome As String,
  2.                                  ByVal Data As String)
  3.             Dim P As New Persona(Nome, Cognome, Date.Parse(Data))
  4.             MyBase.Add(P)
  5.         End Sub


PM Quote