复合词“with”中的名称解析如何工作?声明?

发布于 2024-11-07 11:11:05 字数 504 浏览 3 评论 0原文

以下代码中测试了 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;

Which instance of Ready gets tested in the following code, and why?

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;

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

何处潇湘 2024-11-14 11:11:05

最后一张。

with Object1, Object2 do

相当于

with Object1 do
  with Object2 do

,因此 Object2 将是第一优先级。

有关此事的官方文档。

The last one.

with Object1, Object2 do

is equivalent to

with Object1 do
  with Object2 do

and so Object2 will be the number-one priority.

The official documentation on this matter.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文