Я регистрировался на событие в своем классе, и, как обычно, я ленился и просто использовал функцию автозаполнения, встроенную в Visual Studio 2008 Pro, которая автоматически создает создание делегата и связанный с ним метод.
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
}
}
Обычно я не думаю дважды, когда Visual Studio генерирует обработчик событий для меня, но затем я получил рекомендацию от Refactor! Pro "Удалить избыточное создание делегата". Результатом рекомендации является:
public abstract class FooBase
{
protected event EventHandler<MyValueChangedArgs> MyValueChanged;
protected FooBase()
{
MyValueChanged += HandleMyValueChanged;
}
private void HandleMyValueChanged(object sender, MyValueChangedArgs e)
{
// Some handling logic
}
}
При каких обстоятельствах создание делегата избыточно и когда уместно создание делегата?
Спасибо.