У меня есть несколько классов (из TObject
) в Delphi XE7 (Firemonkey), у которых есть свойство AsJson
:
uses
System.Classes, System.SysUtils, XSuperObject;
type
TMyObject = class(TObject)
public
property AsJson: ISuperObject read GetAsJson;
end;
Однако компилятор дает мне предупреждения для них:
[dcc32 Warning] MyUnit.pas(383): W1009 Redeclaration of 'AsJson' hides a member in the base class
Я смотрю в базовом классе TObject
и не вижу ничего подобного, и это поле не является допустимым, если я попытаюсь его использовать. Я ничего не вижу в документации о таком свойстве. Это происходит только в том случае, если тип свойства ISuperObject
, который является последней версией XSuperObject
(по крайней мере, из SVN несколько недель назад). Я также пытался использовать тип Integer
, и я тоже понял.
Что означает это предупреждение в моем случае и как от него избавиться?
ИЗМЕНИТЬ
Кажется, это происходит только тогда, когда у меня есть XSuperObject
в предложении использования...
program Project1;
{$APPTYPE CONSOLE}
{$R *.res}
uses
System.SysUtils,
XSuperObject in 'C:\...\XSuperObject.pas',
XSuperJSON in 'C:\...\XSuperJSON.pas';
type
TMyObject = class(TObject)
private
FTest: Integer;
public
property AsJson: Integer read FTest;
end;
begin
end.
Вышеприведенный пример производит:
[dcc32 Warning] Project1.dpr(17): W1009 Redeclaration of 'AsJson' hides a member in the base class
Если я просто удалю XSuperObject
, я не получу этого предупреждения. Моей копии XSuperObject несколько недель.
TObject
- это то, что мы ожидаем. Показать полную программу. - person David Heffernan   schedule 28.12.2014TObject
. Вы? - person David Heffernan   schedule 28.12.2014