Я пытаюсь реализовать ясно в следующем примере кода в Delphi 2009.
interface
...
TFoo<T : IInterface> = class(TObject)
FField : T;
procedure Clear;
end;
...
implementation
...
procedure TFoo<T>.Clear;
begin
// Line Below Results In
// E2010 Incompatible types: 'T' and 'Pointer'
FField := nil;
end;
...
Я мог понять ошибку времени выполнения, если "T" не было ограничено. Но так как "T" должен быть интерфейсом, я бы подумал, что этот синтаксис будет иметь работал.
Есть ли возможность установить FField на NIL, чтобы можно было освободить интерфейс?