码迷,mamicode.com
首页 > 其他好文 > 详细

回调函数的本质,就是把函数当作参数(首先要定义函数类型)

时间:2016-11-03 23:21:57      阅读:396      评论:0      收藏:0      [点我收藏+]

标签:res   声明   www   定义   cli   本质   com   另一个   test   

//把一个方法当作另一个方法的参数, 就是回调方法, 大家习惯称作回调函数

type
  TFunType = function(i: Integer): Integer; {声明一个方法类型}

function MyFun(i: Integer): Integer;        {建立类型兼容的函数}
begin
  Result := i*2;
end;

{把函数当作参数, 再定义一个函数}
function MyTest(x: Integer; F: TFunType): Integer;
begin
  Result := F(x);
end;


{测试}
procedure TForm1.Button1Click(Sender: TObject);
var
  Fun: TFunType; {声明一个 TFunType 的变量}
  i: Integer;
begin
  Fun := MyFun;  {让方法变量 Fun 指向和它类型兼容的一个方法}

  {测试 Fun; Fun 是一个方法变量, 现在去执行那个方法, 它就可以当作那个方法来使用了}
  i := Fun(4);
  ShowMessage(IntToStr(i));  //8

  {把 Fun 当作参数使用; 把函数当作参数使用, 这就是回调函数}
  i := MyTest(4,Fun);
  ShowMessage(IntToStr(i));  //8
end;

 

http://www.cnblogs.com/del/archive/2008/01/15/1039476.html

回调函数的本质,就是把函数当作参数(首先要定义函数类型)

标签:res   声明   www   定义   cli   本质   com   另一个   test   

原文地址:http://www.cnblogs.com/findumars/p/6028442.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!