在C#中,
的优势是什么?public class blah
{
public event EventHandler Blahevent;
}
与
public class blah
{
private event EventHandler blahevent;
public event EventHandler Blahevent
{
add
{
blahevent+=value;
}
remove
{
blahevent-=value
}
}
}
反之亦然。
是第一个打开你的blahinstance.Blahevent = null,或blahinstance.Blahevent(obj,偶数)
答案 0 :(得分:2)
除非您想要做一些不同的事情,否则显式实现添加/删除方法没有任何好处。可能的原因:
默认实现的作用是维护一个私有隐藏委托字段,每次添加或删除委托时都会替换该字段。对于大多数情况,没有必要进行上述任何操作,但灵活性就在那里。
答案 1 :(得分:1)
如果除了添加或删除指针之外还有需要运行的特定逻辑,则第二个可以选择准确控制指定事件订阅或取消订阅时发生的事件。
答案 2 :(得分:1)
您可以使用私有字段上的[field:NonSerialized()]属性从序列化中排除委托。
答案 3 :(得分:1)
您可以在后者上放置断点以进行调试。有时这可能真的有用(虽然在调试后我将它切换回前者)。