Tôi đã đăng ký một sự kiện trong lớp của mình, và như thường lệ, tôi đã lười biếng và chỉ sử dụng tính năng tự động hoàn thành được tích hợp trong Visual Studio 2008 Pro, tạo tự động tạo và tạo phương thức liên kết.Điều gì cấu thành 'tạo đại biểu dư thừa'?
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
}
}
Thông thường tôi không nghĩ hai lần khi Visual Studio gens xử lý sự kiện cho tôi, nhưng sau đó tôi nhận được đề xuất từ Refactor! Pro để "Hủy bỏ sáng tạo đại biểu thừa". Kết quả đề xuất trong:
public abstract class FooBase
{
protected event EventHandler<MyValueChangedArgs> MyValueChanged;
protected FooBase()
{
MyValueChanged += HandleMyValueChanged;
}
private void HandleMyValueChanged(object sender, MyValueChangedArgs e)
{
// Some handling logic
}
}
Trong trường hợp nào việc tạo đại biểu là thừa và khi nào việc tạo đại biểu phù hợp?
Cảm ơn.