gpt4 book ai didi

c# - 触发事件时的事件和委托(delegate)顺序

转载 作者:太空狗 更新时间:2023-10-29 22:11:09 27 4
gpt4 key购买 nike

我最近参加了一次 C# 面试,被问到有关 C# 中的事件和委托(delegate)的问题

有人问我什么时候点击事件说按钮,哪个被称为第一个事件或委托(delegate)?

委托(delegate)调用事件还是事件调用委托(delegate)?

我们可以在 c# 中创建一个没有委托(delegate)的事件吗?

最佳答案

The person asked me when a event say button gets clicked, which gets called first: the event or the delegate?

当你打开一扇门时,哪个先被打开:还是门 Handlebars

嗯?

这个问题没有任何意义。你用门 Handlebars 打开了一扇门,但你没有打开门 Handlebars

“调用”事件是什么意思?事件不是你所说的东西。事件是您发起的事情。引发事件调用委托(delegate)相同。

Does the delegate calls the event or the event calls delegate?

是门开门 Handlebars ,还是门 Handlebars 开门?

同样,这个问题没有意义。门 Handlebars 不是可以“打开”的东西,门 Handlebars 不会开门——通过握住门 Handlebars 来打开门。

委托(delegate)是否调用事件?不;事件不是可以“调用”的东西。事件是否调用委托(delegate)?不,引发事件的代码调用委托(delegate)

Can we have a event without a delegate in c#?

是的,从某种意义上说,与事件关联的委托(delegate)引用可以是空引用。但是每个事件都与委托(delegate)类型相关联,并且以某种方式与对委托(delegate)的引用相关联。

整套问题给我的感觉是,提问者对事件和委托(delegate)之间的关系没有很好的理解。考虑它的一个好方法是,事件只是一个包含对多播委托(delegate)的引用的属性。属性具有获取和设置属性值的特殊方法,而事件具有向多播委托(delegate)添加和删除委托(delegate)的特殊方法。

关于c# - 触发事件时的事件和委托(delegate)顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7809924/

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