Mi stavo registrando a un evento della mia classe e, come al solito, ero pigro e utilizzavo la funzionalità di completamento automatico integrata in Visual Studio 2008 Pro che crea automaticamente la creazione delegati e il suo metodo associato.Che cosa costituisce la "creazione di delegati ridondanti"?
public abstract class FooBase
{
protected event EventHandler<MyValueChangedArgs> MyValueChanged;
protected FooBase()
{
MyValueChanged +=
new EventHandler<MyValueChangedArgs>(HandleMyValueChanged);
}
private void HandleMyValueChanged(object sender, MyValueChangedArgs e)
{
// Some handling logic
}
}
Di solito io non penso due volte quando Visual Studio gens il gestore di eventi per me, ma poi ho ricevuto una raccomandazione da Refactor! Pro per "Rimuovere la creazione del delegato ridondante". La raccomandazione restituisce:
public abstract class FooBase
{
protected event EventHandler<MyValueChangedArgs> MyValueChanged;
protected FooBase()
{
MyValueChanged += HandleMyValueChanged;
}
private void HandleMyValueChanged(object sender, MyValueChangedArgs e)
{
// Some handling logic
}
}
In quali circostanze la creazione delegata è ridondante e quando è la creazione delegata appropriata?
Grazie.