gpt4 book ai didi

c# - 如何在 C# 中创建和释放 PropertyChangedEventHandler

转载 作者:行者123 更新时间:2023-11-30 20:42:13 26 4
gpt4 key购买 nike

我有以下代码,其中有一个“PropertyChangedEventHandler”。我看到它有一个属性 PropertyChangedEventHandler,但我没有看到它调用“new PropertyChangedEventHandler”的任何地方?我是否需要在不需要时“清空”引用?

public abstract class MyClass: INotifyPropertyChanged
{
public event PropertyChangedEventHandler eventHandler;
}

最佳答案

当您声明一个事件时,编译器会自动创建一个目标委托(delegate)类型的支持字段和两个包装方法,称为“添加”和“删除”。当您订阅该事件时,“添加”方法将在内部调用,如果尚未创建,它会创建底层委托(delegate)的实例(在本例中为 PropertyChangedEventHandler)。

当您取消订阅该事件时,将在内部调用“remove”方法。如果没有更多订阅者,底层委托(delegate)字段在“remove”方法中自动设置为 null。所以你不需要明确地将它设置为 null 。

这就是您需要在引发事件之前检查空引用的原因,因为如果没有订阅者,基础字段将为空。

关于c# - 如何在 C# 中创建和释放 PropertyChangedEventHandler,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31551520/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com