39、深入探索Object Pascal中的匿名方法

深入探索Object Pascal中的匿名方法

1. 匿名方法概述

Object Pascal语言包含过程类型(声明指向过程和函数的指针类型)和方法指针(声明指向方法的指针类型)。方法指针类型是组件和可视化控件中事件处理程序的基础,每次声明事件处理程序时,实际上是在声明一个将使用方法指针连接到事件的方法。

匿名方法对这一特性进行了扩展,允许将方法的实际代码作为参数传递,而不是传递在其他地方定义的方法名称。此外,匿名方法管理局部变量生命周期的方式与其他技术有很大不同。

在许多其他语言中,类似的特性被称为闭包(closures),例如JavaScript。Object Pascal使用“匿名方法”这一术语,是因为不同语言使用不同术语,且Embarcadero的C++编译器将Object Pascal中的事件处理程序称为闭包,为避免混淆而采用不同名称。在许多编程语言(尤其是动态语言)中,匿名方法以不同形式和名称存在多年。在C#中,对应的特性称为匿名委托。

从宏观角度看,泛型允许代码针对类型进行参数化,而匿名方法允许代码针对方法进行参数化。

2. 匿名方法的语法和语义

在Object Pascal中,匿名方法是在表达式上下文中创建方法值的机制。由于Object Pascal是强类型语言,需要先声明匿名方法类型:

type
  TIntProc = reference to procedure (n: Integer);

这与方法引用类型的区别仅在于声明时使用的关键字不同:


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值