Sto scrivendo una collezione che accetta un parametro time, lo scopo è che dopo che è trascorso il tempo specificato, l'elemento non sarà presente nella collezione.
Voglio che l'utente di questa raccolta sia in grado di agire quando un oggetto viene rimosso dalla raccolta in questa circostanza. Ho due modi diversi per raggiungere questo obiettivo, ma non sono sicuro di doverlo fare. Entrambi gli approcci sembrano diversi, ma il risultato finale è praticamente lo stesso.
Sto facendo questa domanda poiché potrei non notare una piccola (o grande) differenza tra i due e speravo di ottenere una guida.
Approccio A: avere un evento come OnRemovalDueToTimeout che si aspetta qualche funzione che riceve un elemento (ad esempio void foo (T removedElement)). dopo la rimozione vorrei sollevare l'evento
Approccio B: ricevi un delegato con la stessa firma di sopra e chiama quel delegato quando un elemento scade.