Delphi-Quellcode:
// deklaration
Class Function GetClient<T:IInterface>(Addr: string):T;
Das hier lässt sich nicht kompilieren
Delphi-Quellcode:
Class Function TWSClient.GetClient<T>(Addr: string):T;
var RIO: THTTPRIO;
begin
Result := nil;
RIO := GetLocalRio;
try
//Result := (RIO as T);//[dcc32 Fehler] E2015 Operator ist auf diesen Operandentyp nicht anwendbar
//Result := T(RIO);//Das geht Aber es produziert zugriffsverletzungen... dank Refcount;
if Supports(RIO,T,Result) then//[dcc32 Fehler] E2250 Es gibt keine überladene Version von 'Supports', die man mit diesen Argumenten aufrufen kann
RIO.URL := Addr
else
Result := nil;
finally
if (Result = nil) then
RIO.Free;
end;
End;