为什么委托没有参数 本帖最后由 sunwukong 于 2011-08-16 14:45:18 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 委托是变量而不是方法调用,所以不能有参数,委托就是一个函数指针,是一个内存地址,把这个地址传给list.FindAll方法,list.FindAll方法内部才调用委托指向的方法,真正调用在list.FindAll内部,而不是在你看到的代码中, 我觉得这样比较正常: List<int> results = list.FindAll(Even(3)); 你可以把委托看成C++的里面函数指针,申明一个委托,就好像如下的C++代码typedef void (*FCN)(char, int); Even可以直接作为一个变参传入,而也支持Event(3)这样的调用方法,其实是执行了委托的invoke 3是啥,其实在FindAll里面会依次用List里面的每个元素作为参数调用Even,Even在这里是一个符合要求的函数指针而已 List<int> results = list.FindAll(Even);这种代码叫做“语法糖”,它是编译器所理解的,但是.net framework根本没有这种东西。编译器把它生成为List<int> results = list.FindAll(new Predicate<int>(Even));这里只不过是把Even作为一个Predicate<int>对象实例的实例化参数而使用的。 Thanks for all of you guys.but, you have to wait until I will have got so many points to send to you. 根据年显示该年中各个月的第一天和最后一天 vsto AspNetPager翻页控件 c#连接数据库查询问题(分不够再加) 关于repeater控件的问题,急! 急求解决方法 100分,在线求解,如何在多线程中,循环间隔一段时间执行操作 对EDM(Entity Data Model)进行查询哪种比较好? 有谁知道这个Expression怎么写? zedgraph控件滚动条自动滚动 c#关于SOCKET多线程有难度的一个问题 在线求救
typedef void (*FCN)(char, int);
3是啥,其实在FindAll里面会依次用List里面的每个元素作为参数调用Even,Even在这里是一个符合要求的函数指针而已
but, you have to wait until I will have got so many points to send to you.