Bonjours à tous,
Avis aux spécialistes des types génériques, pour Delphi 2009 Win32
Plusieurs questions sur lesquelles j'ai passé quelques heures sans trouver de solution (types génériques: nouveau pour moi...)
1) Peut on créer une classe de base dérivée d'une classe générique fermée (comme ci dessous)
Ca semble possible en Delphi .NET (d'aprés tuto sur le site), mais erreur en Win32?
Exemple:
2) Comment utiliser des méthodes génériques en temps d'accesseur de propriété?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 TVehicule<T> = class(TPersistent) TCamion = class(TVehicule<TCamion>)
Exemple (qui ne fonctionne pas: identificateur GetData non déclaré...)
(edit) Je me permet d'en rajouter une troisième...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 TCamion = class (TObject) protected function GetData<T>: T; published property Conducteur: TConducteur read GetData; // avec GetData<TConducteur> : GetData`1 n'est pas un champ ou un identificateur de méthode reconnu
3) Peut on transtyper en utilisant le type générique?
Exemple (retourne une erreur sur as... : opérateur non applicable à ce type d'opérande)
function TDSWrapper<T>.WrapGetItem(Index: integer): T;
begin
Result := (Self.GetItem(Index) as T);
end;
Si je 'force' le casting ( T(self.Getitem...) ) l'erreur devient: Transtypage incorrect.
Merci!
g
Partager