博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Delphi匿名方法(一):初识
阅读量:5260 次
发布时间:2019-06-14

本文共 1544 字,大约阅读时间需要 5 分钟。

对于比较简单实现,不需要复用,开发者更喜欢在使用时,原地声明,而没有必要单独声明并实现这个方法

对于使用C#和Objective-C的开发人员,应该很容易感受到匿名方法的便利。

从Delphi 2009开始,Delphi也加入了对匿名方法的支持

unit Unit1;interfaceuses  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,  Vcl.Controls, Vcl.Forms, Vcl.Dialogs;type  //首先声明匿名方法的类型  TIntSum = reference to function (x, y: Integer): Integer;  //引用方法的声明  //TIntProcedure = function (x, y: Integer): Integer of object;  TForm1 = class(TForm)    procedure FormCreate(Sender: TObject);  private    function plusXandY(x, y: Integer; intSum: TIntSum): integer;    {
Private declarations } public {
Public declarations } end;var Form1: TForm1;implementation{
$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);begin ShowMessageFmt('x + y = %d', [plusXandY(10, 15, function (x, y: Integer): Integer begin Result := x + y; end) ]); ShowMessageFmt('x + y = %d', [plusXandY(20, 1500, function (x, y: Integer): Integer begin Result := x * y; end) ]);end;function TForm1.plusXandY(x, y: Integer; intSum: TIntSum): integer;begin Result := intSum(x, y);end;end.

 

当然,如果您编写的逻辑比较复杂,代码比较多,还是不提倡使用匿名的方法,那样会造成阅读困难

 

转载于:https://www.cnblogs.com/iihe602/archive/2013/02/21/2920694.html

你可能感兴趣的文章
格而知之2:UIView的autoresizingMask属性探究
查看>>
我的Hook学习笔记
查看>>
js中的try/catch
查看>>
寄Android开发Gradle你需要知道的知识
查看>>
简述spring中常有的几种advice?
查看>>
整理推荐的CSS属性书写顺序
查看>>
ServerSocket和Socket通信
查看>>
css & input type & search icon
查看>>
源代码的下载和编译读后感
查看>>
Kafka学习笔记
查看>>
Octotree Chrome安装与使用方法
查看>>
Windows 环境下基于 Redis 的 Celery 任务调度模块的实现
查看>>
趣谈Java变量的可见性问题
查看>>
C# 强制关闭当前程序进程(完全Kill掉不留痕迹)
查看>>
ssm框架之将数据库的数据导入导出为excel文件
查看>>
语音识别中的MFCC的提取原理和MATLAB实现
查看>>
验证组件FluentValidation的使用示例
查看>>
0320-学习进度条
查看>>
解决windows系统的oracle数据库不能启动ora-00119和ora-00130的问题
查看>>
ip相关问题解答
查看>>