[问题] 关于Delegate与Lambda的结合应用Bug

楼主: yan04870449 (杨伯)   2014-10-08 20:03:07
小弟附上一份我实现Bug的Code,我认为这应该不是Bug
而是我哪边认知有错。
虽然我是在Unity里面执行的,但是我想在VS里面应该也是一样结果
以下是程式码连结
https://gist.github.com/anonymous/4f06c028f7688c8047b1
以下是执行结果(Unity平台)
A:-1254341580
B:-1254341612
C:-1254341516
myAction 1:-1254341580
myAction 2:-1254341612
SET :-1254341612
myAction 3:-1254341612
myAction 4:-1254341612
iAction:-1254341612
A
B
myAction 5:-1254341612
myAction
作者: a926 (Aaron)   2014-10-08 23:27:00
因为你在28行Set(myAction)的时候里面只有combine _A跟_B并没有_C然后invodker没有串联,纯粹是执行你Action的结果
楼主: yan04870449 (杨伯)   2014-10-09 09:37:00
我原本的预期是,delegate是call be ref,所以我把他送进去lambda的method里面之后,我如果再对deleaget增加method的话,我觉得应该要加的上去的,但是似乎变成是call by value了!?
作者: a926 (Aaron)   2014-10-09 12:13:00
这部分可能还是要请高手来解释. 就我看完资料的感觉delegate call be ref 是指他在呼叫函数的时候是by ref也就是delegate 存放的是函数的point 而不是存函数 valuehttp://0rz.tw/ZbE8A 这位大大第一句话就有点类似我的想法也许你可以留言再询问他一下你可以看这篇 http://0rz.tw/PGx7a因为VB的写法跟C#有点不一样,可是看VB的Keyword就比较了解也谢谢你让我复习了一下委派 XD

Links booklink

Contact Us: admin [ a t ] ucptt.com