Unity - A计划(永久有效期) 扫二维码继续学习 二维码时效为半小时

(207评价)
优惠后 ¥1899.00优惠前 ¥2499.00 双十一全年最大力度限时优惠
1对1 答疑即时回复7天无理由退款30天价保提问必答

服务保障

1对1 答疑

提供专属的一对一在线答疑,快速答疑解惑。

即时回复

及时响应学习咨询,帮助解决问题。

7天无理由退款

购买后7天内可申请无理由退款。

30天价保

购买后30天内如遇降价,可申请价保。

提问必答

对于提问做到有问必答,帮您扫清学习过程中的种种障碍

有关于C#高级篇回调函数的问题
Ydmund发起了问答2021-11-16
3
回复
288
浏览
 Func<int, string, int> func = Test;
            IAsyncResult a = func.BeginInvoke(777, "QAQ", Callback, func);

            Console.ReadKey();
        }

        static void Callback(IAsyncResult async) {
            Func<int, string, int> a = async.AsyncState as Func<int, string, int>;
            int res =   a.EndInvoke(async);
            Console.WriteLine(res+"为回调函数返回值");

老师 AsynState取得的参数既然是BeginInvoke 的最后一个参数,那为什么还要用as转化成Func<int, string, int> 这个类型呢, 有点没听明白, 望解答。

所有回复
  • 老师_Trigger • 2021-11-17

    同学你好,具体是哪几课时的,视频标题可以给老师说一下吗

    • Ydmund • 2021-11-17

      第三季 SIKIC#高级教程 (2015版);503-检测委托线程的结束-通过等待句柄和回调函数。 9分钟左右的地方

      (0) 回复
    • 老师_Trigger • 2021-11-18

      回复 @ Ydmund: 同学可以把鼠标放在AsyncState上会发现,它是一个object类型的对象,不是我们想要的Func<int, string, int>这种类型的对象,但是这个对象本身是Func<int, string, int>的对象,所以我们需要把它转成我们需要的类型,然后就可以使用了,这个类型转化问题可以看一下第二季,父子类型转换的问题

      (0) 回复
    还有-3条回复,点击查看
    你还没有登录,请先登录或注册!
发表回复
你还没有登录,请先 登录或 注册!