因为听人说过想学好编程,必须要懂得程序在内存的运行情况,今天学习了,委托和事件
,有点不太明白。求大神讲解一下
小白求教c#委托和事件的用法,以及在内存中的运行情况
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
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);解决 无用评论 打赏 举报