数学建模社区-数学中国
标题:
回调函数定义和调用
[打印本页]
作者:
建不了的模。
时间:
2014-12-30 10:39
标题:
回调函数定义和调用
创建完听众后就可以定义听众的回调函数了,听众的回调函数可以是一个对象中的普通方法或静态方法,也可以是一个普通的函数(全局函数)。根据回调函数在不同位置处的定义,其函数参数形式有所不同。一般回调函数的定义格式如下。
(1)作为一个类的普通方法
methods
function CallbackFunction (obj,src,evnt)
%obj:本类实例
%src:产生事件的对象
%evnt:事件数据
...
end
end
这时,回调函数的第一个参数obj就必须是本类对象;第二个参数src是产生事件的对象;第三个参数evnt是事件数据。
(2)作为一个类的静态方法
此时,本类对象参数obj可以缺省,形式如下:
methods (Static = true)
function CallbackFunction (src,evnt)
%src:产生事件的对象
%evnt:事件数据
...
end
end
(3)作为普通函数
此时,对象obj可以缺省,形式如下:
function CallbackFunction (src,evnt)
%src:产生事件的对象
%evnt:事件数据
...
end
注意:无论什么情况下,回调函数至少应有两个输入参数。
有了回调函数,接下来就是回调函数的调用问题了。根据回调函数是类的普通方法、静态方法和普通函数的不同情况,其调用格式也有差别,具体如下。
(1)如果回调函数是一个普通函数,调用格式为:
hlistener = addlistener(eventSourceObj,'MyEvent', @CallbackFunction);
(2)如果回调函数是一个对象中的方法,则调用格式为:
hlistener = addlistener(eventSourceObj,'MyEvent', @obj.CallbackFunction);
(3)如果回调函数是一个类中的静态方法,则调用格式为:
hlistener = addlistener(eventSourceObj,'MyEvent', @ClassName.CallbackFunction);
另外,如果函数形式比较简单,也可用无名函数的形式调用,如:
hlistener = addlistener(eventSourceObj,'MyEvent', @(x,y) x.^2+y.^2);
当用event.listener类的构造函数来定义听众对象时,回调函数的调用方法与addlistener一致。
作者:
w785485068
时间:
2015-1-2 15:19
支持。。。。。。。。
作者:
domodo2012
时间:
2016-10-17 09:10
学习了,好东西
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5