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

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

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

我觉得这个强转完全没有必要。为什么微软把这个函数调用参数做成一个接口,而不是具体的类? 每次都得强转很丑陋啊
...全文
95 点赞 收藏 3
写回复
3 条回复
江南小鱼 2015年07月14日
1、某些时候你可以不转换,比如socket异步接收、发送,直接
EndRead(ar)
也是可以的 2、IAsyncResult 接口由包含可异步操作的方法的类实现。接口参数,不是更灵活、统一么?
回复 点赞
娃都会打酱油了 2015年07月14日
不转也可以的啊,你干嘛要转,必要的东西本身就可以点出来了啊
回复 点赞
五更琉璃 2015年07月14日
也许以后 会出现新的类继承这个接口。
回复 点赞
发动态
发帖子
C#
创建于2007-09-28

8.4w+

社区成员

64.0w+

社区内容

.NET技术 C#
社区公告
暂无公告