zoukankan      html  css  js  c++  java
  • Delphi 系统[10]关键字和保留字 with

    Delphi 系统[10]关键字和保留字  with

    1、定义:

    with语句是引用记录的字段或对象的字段、属性和方法的缩写/简化。

    2、语法:

    with obj do statement
    with obj1, ..., objn do statement

    其中,obj是一个表达式,产生对记录、对象实例、类实例、接口或类类型(元类)实例的引用,语句是任何简单或结构化语句。在语句中,您可以仅使用obj的标识符引用其字段、属性和方法,而不使用限定符。  

    3、示例:

    //例如:以下申明
    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语句访问另一个同名变量或方法,则需要在其前面加上限定符,如以下示例所示:

    with OrderDate do
      begin
        Year := Unit1.Year
        ...
      end;
    

    当with之后出现多个对象或记录时,整个语句将被视为一系列嵌套with语句。因此 使用obj1、obj2、…、objn do语句相当于:

    with obj1 do
    	  with obj2 do
    	     ...
    	     with objn do
    	statement

    在这种情况下,语句中的每个变量引用或方法名都被解释为objn的一个成员(如果可能);否则,如有可能,将其解释为objn-1的成员;等等同样的规则也适用于解释 objs 本身,因此,例如,如果objn同时是obj1和obj2的成员,则将其解释为obj2.objn。

      

    创建时间:2021.08.11  更新时间:

    博客园 滔Roy https://www.cnblogs.com/guorongtao 希望内容对你所有帮助,谢谢!
  • 相关阅读:
    js组件之间的通信
    localStorage, localforage, web sql三者的比较
    最近的学习计划
    无状态的web应用
    转 :meta name的含义:<META http-equiv=Content-Type content="text/html; charset=gb2312">
    css清除浮动的方法汇总
    segfault at 7fff6d99febc ip 0000003688644323 sp 00007fff6d99fd30 error 7 in libc.so.6[3688600000+175000]
    Linux内核定时器
    TCPIP网络协议层对应的RFC文档
    UIDocumentPickerViewController使用
  • 原文地址:https://www.cnblogs.com/guorongtao/p/15128439.html
Copyright © 2011-2022 走看看