Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > it.comp.lang.visual-basic > #18867
| Newsgroups | it.comp.lang.visual-basic |
|---|---|
| Date | 2016-10-07 15:11 -0700 |
| References | <6df688b1-a619-48d9-ae14-75771252eeec@googlegroups.com> <b6ee2fc6-7c4c-43fd-a314-b55e5a718161@googlegroups.com> <526a5606-aa26-4ee0-89d0-60be9fa9f9f1@googlegroups.com> |
| Message-ID | <36bb6758-a960-4e83-b01f-27a300509df0@googlegroups.com> (permalink) |
| Subject | Re: Architettura interna di ADO.Net |
| From | Luca D <antaniserse@yahoo.it> |
On Friday, October 7, 2016 at 11:29:22 PM UTC+2, Antologiko wrote:
> Ciao, grazie della risposta.
> A dire il vero non capisco la necessita del metodo OnCreateXX().
> Secondo me basta definire nella classe base
>
> Public Function CreateXX() As BaseXX
> Return New BaseXX()
> End Function
>
> e poi, nella classe derivata
>
> Public Overloads Function CreateXX() As DerivataXX
> Return New DerivataXX()
> End Function
No, non basta... se passi un istanza della classe derivata a funzioni che hanno come parametro la classe base, e da lì chiami CreateXX, non viene eseguito il codice che ti aspetti
Immagina di avere una funzione così
Private Sub TestFunction(db As BaseConnection)
Dim command As BaseCommand = db.CreateCommand
Debug.WriteLine(command.TestMe)
End Sub
e chiamarla con
TestFunction(New BaseConnection)
TestFunction(New DerivedConnection)
Ora, prendi prima questo set di classi (http://pastebin.com/irVuf9V9) fatte come dici tu, e poi quest'altro (http://pastebin.com/8SVg2cMf) fatte come dico io, e vedrai che il risultato cambia.
E' 'override' che fa funzionare il tutto, ma non lo puoi applicare se la funzione cambia il tipo di ritorno, da cui la soluzione di separare in due protected/public
Back to it.comp.lang.visual-basic | Previous | Next — Previous in thread | Next in thread | Find similar
Architettura interna di ADO.Net Antologiko <antologiko@gmail.com> - 2016-10-06 17:55 -0700
Re: Architettura interna di ADO.Net Luca D <antaniserse@yahoo.it> - 2016-10-07 05:17 -0700
Re: Architettura interna di ADO.Net Antologiko <antologiko@gmail.com> - 2016-10-07 14:29 -0700
Re: Architettura interna di ADO.Net Luca D <antaniserse@yahoo.it> - 2016-10-07 15:11 -0700
Re: Architettura interna di ADO.Net Antologiko <antologiko@gmail.com> - 2016-10-08 02:30 -0700
Re: Architettura interna di ADO.Net Luca D <antaniserse@yahoo.it> - 2016-10-09 01:18 -0700
Re: Architettura interna di ADO.Net Antologiko <antologiko@gmail.com> - 2016-10-09 15:44 -0700
csiph-web