Est-ce possible de créer une méthode générique contrainte?
-
27-10-2019 - |
Question
J'ai créé la classe simple suivante dans mon code et je reçois "TObject est pas une contrainte valide" message d'erreur.
TTest = class
class function Test<T:TObject>(Dummy: integer): string;
end;
...
class function TTeste.Teste<T>(Dummy: integer): string;
begin
Result := 'Compiled';
end;
Qu'est-ce que je fais mal? Est-ce possible? (Vous pouvez inclure l'option disponible sur les versions ultérieures que D2010, puisque nous allons recevoir nos XE2 licences dans les 2 prochaines semaines).
La solution
Essayez la contrainte class
:
TTest = class
class function Test<T:class>(Dummy: integer): string;
end;
Il pourrait ne pas accepter que les classes normales, mais aussi des interfaces avec cette contrainte (en C #, il fait, et les génériques Delphi imiter C # génériques).
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow