event EventHandler被分配给空委托

时间:2013-09-06 14:35:43

标签: c#

我正在阅读一些代码并找到了这一行:

public event EventHandler Lock = delegate { }

它做什么?
为什么有人会使用这样的代码?

2 个答案:

答案 0 :(得分:6)

通常你这样做:

var handler = Lock;
if (handler != null)
    handler(this, args);

使用空委托,它永远不会为空,所以你只能举起Lock(this, args);

答案 1 :(得分:2)

空委托使用会有很小的性能成本,但您使用它是为了避免执行空测试。我认为值得使用它。此外,阅读代码更容易:)