Согласно документации Delphi , я могу преобразовать TInterfacedObject
в интерфейс, используя как
] оператор.
Но у меня он не работает. Приведение выдает ошибку компиляции: «Оператор не применим к этому типу операнда».
Я использую Delphi 2007.
Вот код ( консольное приложение). Строка, содержащая ошибку, отмечена.
program Project6;
{$APPTYPE CONSOLE}
uses
SysUtils;
type
IMyInterface = interface
procedure Foo;
end;
TMyInterfacedObject = class(TInterfacedObject, IMyInterface)
public
procedure Foo;
end;
procedure TMyInterfacedObject.Foo;
begin
;
end;
var
o: TInterfacedObject;
i: IMyInterface;
begin
try
o := TMyInterfacedObject.Create;
i := o as IMyInterface; // <--- [DCC Error] Project6.dpr(30): E2015 Operator not applicable to this operand type
except
on E:Exception do
Writeln(E.Classname, ': ', E.Message);
end;
end.