In caso di classi estese su più livelli, se sulla classe all'ultimo livello si va a richiamare un evento definito sulle classi padri, si hanno 2 comportamenti che traggono in inganno:
1 - il menù dell'auto-composizione non distingue la classe a cui appartiene l'evento, rendendo di fatto impossibile sapere quale riga si deve selezionare
2 - nel caso di un evento già scritto nel codice, non si sa a quale classe si fa riferimento, e se per caso la classe selezionata non è quella giusta, utilizzando la funzione "vai a classe...." del menù contestuale, si rischia di "perdersi" un livello.
Le mie proposte (alternative) sono 2:
1 - Rendere esplicito il nome della classe sia nel menù di auto-composizione sia nel codice VCE
2 - Mostrare sempre e comunque solo un evento (quello della classe al livello precedente)
NOTA: dato che il codice generato (ovviamente) è sempre lo stesso,
- Code: Select all
base.onDeleting();
a run-time il comportamento è giusto in ogni caso. I "problemi" si hanno nelle relazioni tra gli elementi dell'albero di progetto, e quindi nel VCE, nel debug, nel trova oggetti collegati, ecc....
Come ultima cosa (qui si va nel complicato), se (prendiamo il mio esempio) ho l'evento OnDeleting definito su NuovaClasse1 e NuovaClasse3, quando su NuovaClasse3 richiamo l'evento base, il link viene fatto su NuovaClasse1 perchè su NuovaClasse2 l'evento ancora non è definito. Nel momento in cui andrò a definire l'evento su NuovaClasse2, il riferimento su NuovaClasse3 dovrebbe cambiare e puntare al nuovo onDeleting NuovaClasse2. Stesso problema sulla cancellazione dell'evento su NuovaClasse2: in quel caso il riferimento dovrebbe passare di nuovo a NuovaClasse1.