BeginInvoke的回调函数,参数是IAsyncResult为什么不是AsyncResult类?

jiioeri 2015-07-14 11:47:23
每次我写一个回调函数的时候,像下面这样:

static void Complete(IAsyncResult IA)
{
AsyncResult AR = (AsyncResult) IA;
}

我觉得这个强转完全没有必要。为什么微软把这个函数调用参数做成一个接口,而不是具体的类? 每次都得强转很丑陋啊
...全文
295 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
江南小鱼 2015-07-14
  • 打赏
  • 举报
回复
1、某些时候你可以不转换,比如socket异步接收、发送,直接
EndRead(ar)
也是可以的 2、IAsyncResult 接口由包含可异步操作的方法的类实现。接口参数,不是更灵活、统一么?
  • 打赏
  • 举报
回复
不转也可以的啊,你干嘛要转,必要的东西本身就可以点出来了啊
五更琉璃 2015-07-14
  • 打赏
  • 举报
回复
也许以后 会出现新的类继承这个接口。

111,098

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧