gpt4 book ai didi

.net - 委托(delegate)和回调是否相同或相似?

转载 作者:行者123 更新时间:2023-12-02 18:09:11 25 4
gpt4 key购买 nike

委托(delegate)和回调是一样的吗?或者它们之间有某种关联吗?

最佳答案

“回调”是一个术语,指的是一种编码设计模式,可用于任何具有函数指针或函数指针类似物(类似于委托(delegate))的语言

在此模式中,您将一个函数的指针传递给另一个函数,以便在被调用的函数中,它可以“回调”您传递给它的函数。通过这种方式,您可以通过每次调用不同的“回调”函数时传递指向不同“回调”函数的指针,从方法外部控制该方法的大部分内部行为...回调的一个示例是当您有排序算法时必须传递一个指向函数的指针,该函数将“比较”要排序的列表中的任意一对对象,以确定哪个在另一个之前。在一次调用排序方法时,您可能会传递一个按对象名称进行比较的回调函数,另一次则传递一个按对象重量或其他方式进行比较的函数...

委托(delegate)(otoh)是一种特定的 .Net 类型,充当函数指针的特定于签名的容器...在 .Net 托管代码中,委托(delegate)是创建和使用函数指针的唯一方法。所以在.Net中做回调,实际上是在传递一个委托(delegate)...但是除了回调之外,委托(delegate)还可以用于其他场景。 (具体来说,委托(delegate)还可以用于实现.Net线程池中的多线程)

回调还用于实现“观察者”模式(在 .Net 中使用事件实现,事件本身就是一种特殊类型的委托(delegate))

关于.net - 委托(delegate)和回调是否相同或相似?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/290819/

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