Как разрешение имен работает в составных «с» утверждениях? - PullRequest
4 голосов
/ 17 мая 2011

Какой экземпляр 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;

1 Ответ

13 голосов
/ 17 мая 2011

Последний.

with Object1, Object2 do

эквивалентен

with Object1 do
  with Object2 do

, поэтому Object2 будет приоритетом номер один.

Официальная документация по этому вопросу.

...