Имам няколко класа (от 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