1

我正在阅读一些代码,发现这一行:

public event EventHandler Lock = delegate { }

它有什么作用?
为什么有人会使用这样的一段代码?

4

2 回答 2

6

通常你会这样做:

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

使用空委托它永远不会为空,因此您只需 raise Lock(this, args);

于 2013-09-06T14:37:42.390 回答
2

使用空委托会产生少量性能成本,但您使用它是为了避免执行空测试。我认为它确实值得使用。此外,它更容易阅读代码:)

于 2013-09-06T14:41:14.700 回答