free_rein_programmer 2016-12-16 17:16 采纳率: 0%
浏览 1031

小白求教c#委托和事件的用法,以及在内存中的运行情况

因为听人说过想学好编程,必须要懂得程序在内存的运行情况,今天学习了,委托和事件
,有点不太明白。求大神讲解一下

  • 写回答

2条回答 默认 最新

  • threenewbee 2016-12-17 03:03
    关注

    想学好编程,必须要懂得程序在内存的运行情况,这是老黄历了,使用C/C++等没有垃圾回收的语言需要懂,使用C#,特别是初学者,没有必要懂这个(尤其是在别的还没有学好的情况下)

    委托事件没有你想的那么难,委托就是将函数当作一个类型使用。比如说,我们用Action这个类型代表一切没有返回值,没有参数的函数
    void foo() { ... } //这里定义一个函数
    int main()
    {
    Action a = foo; //将foo视作一个变量,而将void无参数的函数视作一种类型叫Action
    do100times(a);
    }
    下面定义一个叫do100times的函数,执行这个函数100次。
    void do100times(Action a)
    {
    for (int i = 0; i < 100; i++) a();
    }
    注意,这个函数可以将任何无参数、无返回值的函数执行100次。它调用的是a,至于这个a是foo还是别的函数,它不用管,这就是委托(delegate)的含义
    如果我们再写一个函数
    void bar() {...}
    一样可以调用
    do100times(bar);

    评论

报告相同问题?

悬赏问题

  • ¥20 双层网络上信息-疾病传播
  • ¥50 paddlepaddle pinn
  • ¥20 idea运行测试代码报错问题
  • ¥15 网络监控:网络故障告警通知
  • ¥15 django项目运行报编码错误
  • ¥15 请问这个是什么意思?
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样