Delphi 系统[10]关键字和保留字 with
Delphi 系统[10]关键字和保留字 with
1、定义:
with语句是引用记录的字段或对象的字段、属性和方法的缩写/简化。
2、语法:
1 2 | with obj do statement with obj1, ..., objn do statement |
其中,obj是一个表达式,产生对记录、对象实例、类实例、接口或类类型(元类)实例的引用,语句是任何简单或结构化语句。在语句中,您可以仅使用obj的标识符引用其字段、属性和方法,而不使用限定符。
3、示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | //例如:以下申明 type TDate = record Day: Integer ; Month: Integer ; Year: Integer ; end ; var OrderDate: TDate; //可以用下面的语句来写: with OrderDate do if Month = 12 then begin Month := 1 ; Year := Year + 1 ; end else Month := Month + 1 ; //也相当于 if OrderDate . Month = 12 then begin OrderDate . Month := 1 ; OrderDate . Year := OrderDate . Year + 1 ; end else OrderDate . Month := OrderDate . Month + 1 ; |
如果obj的解释涉及索引数组或取消引用指针,则在执行语句之前,这些操作只执行一次。这使得语句既高效又简洁。这也意味着在with语句当前执行期间,对语句内变量的赋值不能影响obj的解释。
with语句中的每个变量引用或方法名都将被解释为指定对象或记录的成员(如果可能)。如果要从with语句访问另一个同名变量或方法,则需要在其前面加上限定符,如以下示例所示:
1 2 3 4 5 | with OrderDate do begin Year := Unit1 . Year ... end ; |
当with之后出现多个对象或记录时,整个语句将被视为一系列嵌套with语句。因此 使用obj1、obj2、…、objn do语句相当于:
1 2 3 4 5 | with obj1 do with obj2 do ... with objn do statement |
在这种情况下,语句中的每个变量引用或方法名都被解释为objn的一个成员(如果可能);否则,如有可能,将其解释为objn-1的成员;等等同样的规则也适用于解释 objs 本身,因此,例如,如果objn同时是obj1和obj2的成员,则将其解释为obj2.objn。
创建时间:2021.08.11 更新时间:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报