delphi - 复合 "with"语句中的名称解析如何工作?

标签 delphi with-statement

以下代码中测试了 Ready 的哪个实例,为什么?

interface

type
  TObject1 = class
  ...
  public
    property Ready: boolean read FReady write FReady;
  end;

  TObject2 = class
  ...
  public
    property Ready: boolean read FReady write FReady;
  end;

implementation

var
  Object1: TObject1;
  Object2: TObject2;

...

procedure test;
var
  Ready: boolean;
begin
  Ready:= true;
  with Object1, Object2 do begin
    if Ready then ShowMessage('which one?');
  end; {with}
end;

最佳答案

最后一个。

with Object1, Object2 do

相当于

with Object1 do
  with Object2 do

因此 Object2 将是第一优先级。

The official documentation on this matter.

关于delphi - 复合 "with"语句中的名称解析如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6024007/

相关文章:

delphi - 使用 GetTypeKind 时如何触发编译时错误

windows - 移动无边框样式的表单

delphi - 将字符串复制到 StringGrid?

带有语句的 Python

python - TemporaryFileWrapper 实例没有 __call__ 方法

javascript - 为什么浏览器会两次获取 Symbol.unscopables?

delphi - 在运行时检测 GPU 是否支持 Pixel Shader 2.0 (Firemonkey)

delphi - 如何计算函数的运行时间?

python - 通过语句和上下文管理器了解 Python

javascript - 拦截属性查找/检查的方法?