Esiste un modo migliore per chiamare il metodo di ciascun oggetto derivato per una classe base?

StackOverflow https://stackoverflow.com/questions/1337845

Domanda

Ho una classe base da cui derivano diverse classi.Ho un'altra classe che utilizza tutte quelle classi derivate in modo diverso.Tuttavia, voglio chiamare il Update() metodo (ereditato dalla classe base) su ciascuna classe derivata.Esiste un modo semplice per farlo o devo fare qualcosa del tipo:

dim a As Derived1
a.Update

dim b As Derived2
b.Update

etc...
È stato utile?

Soluzione

Penso che il modo migliore per farlo sia mantenere gli oggetti derivati ​​in un elenco di qualche tipo e quindi scorrere su di essi per chiamare Update.

In pseudo-codice:

foreach BaseClass item in {a, b, ...}:
    item.Update

Altri suggerimenti

Si può fare attraverso il polimorfismo con una chiamata di funzione che è passato alla classe di base (pseudo-codice):

Dim Dev1 as Derived1 '// This is derived from the class BaseClass
Dim Dev2 as Derived2 '// This is derived from the class BaseClass

CallUpdate(Dev1)
CallUpdate(Dev2)

Function CallUpdate(BaseClass bc)
    bc.Update()
End Function
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top