c# - 为什么委托(delegate)不处理事件 null

标签 c# delegates null

调用委托(delegate)时,您始终必须检查它是否不为空。这是一个经常导致错误的原因。 由于委托(delegate)或多或少只是一个函数列表,我认为委托(delegate)本身可以很容易地检查到这一点。

有谁知道,为什么要按原样实现?

最佳答案

这可能是显而易见的,但您可以将事件声明为指向无操作处理程序,然后在调用时无需检查是否为 null。

public event EventHandler MyEvent = delegate { };

然后您可以调用 MyEvent 指向的处理程序,而无需检查是否为 null。

关于c# - 为什么委托(delegate)不处理事件 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3966248/

相关文章:

sql - Null和IN()提供意外结果

c# - 从 List<List<String>> 中查找不同的元素

c# - 将类型 double[][] 转换为 float

c# - 如何将苹果委托(delegate)添加到水果委托(delegate)列表中?

java - try catch 异常总是返回 null

java - 潜在的空指针访问

c# - 如何获取UWP中Content属性的名称?

c# - 用于比较的哈希函数

ios - 为 UIImagePicker 设置委托(delegate)返回错误

ios - Swift4.2 : Why func gameDidEnd(_:) no need to use game parameter but still declare in the function?