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

(197评价)
价格: 4431.00元
有关于C#高级篇回调函数的问题
Ydmund发起了问答2021-11-16
3
回复
194
浏览
 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条回复,点击查看
    你还没有登录,请先登录注册
发表回复
你还没有登录,请先 登录或 注册!