当前位置: 首页 > 编程语言 > C#

为什么BeginInvoke不返回AsyncResult类型的引用?分享

时间:2023-04-10 17:25:53 C#

为什么BeginInvoke不返回AsyncResult类型的引用?当您调用委托对象的BeginInvoke时,系统会创建一个AsyncResult类型的对象,但BeginInvoke返回一个IAsyncResult类型的引用(指向AsyncResult实例)。为什么BeginInvoke不返回AsyncResult类型的引用?信用列表这是基于标准接口的编程。通过返回IAsyncResult,框架以后可以自由更改内部实现,而不会破坏针对框架API编写的代码。从本质上讲,这告诉我们,作为开发人员,如果满足接口(IAsyncResult),我们不应该关心使用什么类型的实现。相反,如果返回了实际的AsyncResult类,则更改为其他内容会破坏现有代码。此外,这允许框架在多个地方使用相同的接口(IAsyncResult),而不管AsyncResult类是否合适。我个人利用了这一点,因为我创建了自己的异步函数,这些函数返回由存储对我很重要的信息的不同类支持的IAsyncResult。这允许我自己的代码像框架一样工作,而不会限制我对框架的实现。因为它并不总是返回AsyncResult。委托目标可以存在于另一个执行上下文中,RealProxy派生类可以为其实现代理。远程处理就是一个例子。返回接口类型使其透明。以上是C#学习教程:为什么BeginInvoke不返回AsyncResult类型的引用?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: