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);

    评论

报告相同问题?

悬赏问题

  • ¥15 matlab有关常微分方程的问题求解决
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?
  • ¥100 求三轴之间相互配合画圆以及直线的算法
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable