Esiste un'associazione speciale tra la classe EventArgs e la parola chiave dell'evento?
-
30-10-2019 - |
Domanda
In tutto il libro .NET ho letto la riga di guida per l'implementazione di eventi spiega che è necessario sottoclasse EventArgs
e usa EventHandler. Ho cercato più informazioni su http://msdn.microsoft.com/en-us/library/ms229011.aspx, e dice "Usa System.EventHandler invece di creare manualmente nuovi delegati da utilizzare come gestori di eventi". Capisco che ci sono motivi importanti per usare EventArgs, ma la mia domanda non è "dovrei farlo in questo modo?", Ma "posso farlo in questo modo?".
C'è qualche motivo per cui non posso usare un delegato generico anziché un EventHandler
Con i miei eventi? Ad esempio, se voglio un mittente fortemente (chiunque altro ne è infastidito object sender
?) .
Per spiegare cosa intendo meglio, c'è qualche motivo per cui i seguenti non funzionano?
public class IoC
{
public AbstractFactory GetAbstractFactory()
{
var factory = new AbstractFactory();
factory.CreateObject += ()=>new object();
return factory;
}
}
public class AbstractFactory
{
public event Func<object> CreateObject;
private object OnObjectCreated()
{
if(CreateObject == null)
{
throw new Exception("Not injected.");
}
return CreateObject();
}
private object _injectedObject;
public object InjectedObject
{
get
{
if(_injectedObject == null)
{
_injectedObject = OnObjectCreated();
}
return _injectedObject;
}
}
}
Nessuna soluzione corretta