Приведение объекта TInterfacedObject к интерфейсу

Согласно документации 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.

5
задан RRUZ 29 April 2011 в 03:29
поделиться