我正在阅读一些代码并找到了这一行:
public event EventHandler Lock = delegate { }
它做什么?
为什么有人会使用这样的代码?
答案 0 :(得分:6)
通常你这样做:
var handler = Lock;
if (handler != null)
handler(this, args);
使用空委托,它永远不会为空,所以你只能举起Lock(this, args);
。
答案 1 :(得分:2)
空委托使用会有很小的性能成本,但您使用它是为了避免执行空测试。我认为值得使用它。此外,阅读代码更容易:)