Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > it.comp.lang.visual-basic > #18867

Re: Architettura interna di ADO.Net

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>

Show all headers | View raw


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 | NextPrevious in thread | Next in thread | Find similar


Thread

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