gpt4 book ai didi

c# - 如果将回调分配给对象两次,事件是否会执行两次?

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:18:21 35 4
gpt4 key购买 nike

我有一个将事件附加到表单的代码。

this.form.Resize += new EventHandler(form_Resize);

如您所见,这是通过 += 完成的。如果上面的代码被执行了两次或多次,

像这样:

this.form.Resize += new EventHandler(form_Resize);
this.form.Resize += new EventHandler(form_Resize);
this.form.Resize += new EventHandler(form_Resize);
this.form.Resize += new EventHandler(form_Resize);
this.form.Resize += new EventHandler(form_Resize);

是否多次附加回调方法?

该方法将被调用多少次form_Resize ?

如果一个事件的回调方法被多次分配给同一个对象,它是否会被执行多次?

最佳答案

事件处理程序将在每次附加时被调用一次。 (C#)

要防止双重附件,您可以使用此模式:

this.form.Resize -= new EventHandler(form_Resize); 
this.form.Resize += new EventHandler(form_Resize);

如果没有附加处理程序,第一条语句将不会抛出错误,并将删除现有的处理程序。

关于c# - 如果将回调分配给对象两次,事件是否会执行两次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2261828/

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