Interfaces et propriétés : les limites - C#/.NET managed - Programmation
Marsh Posté le 02-06-2006 à 13:31:39
Bonjour,
En effet cest une particularité si tu veux redefinir un setter et un getter, il faut que dans la classe mére tu definisses aussi le getter et setter !
Donc tu mets Un set à rien !!!
Code :
|
Edit: Je ne sais pas si c'est une erreur de past n copy mais ta classe truc n'implemente pas ITruc car il n'ya pas Tru : ITruc
Marsh Posté le 02-06-2006 à 16:09:36
ouaip, t'as raison, c une erreur de copie/paste.
Le set vide ça m'ennuyais beaucoup dans l'esprit, alors j'ai trouvé une autre solution :
* le champ est dans la classe de base.
* y'a une méthode 'ComputeInfo' qui est appelé s'il n'a jamais été initialisé, dans le cas où le champs est calculé.
* c'est optimisé dans mon cas, car l'info n'est jamais nulle pour un TrucEditable.
En gros c'est du pseudo-polymorphisme, pour le codeur c'est complètement transparent.
Code :
|
Marsh Posté le 02-06-2006 à 13:22:26
Bon... les interfaces m'énervent.
J'ai une interface ITruc qui définie une propriété 'Info' qui retourne une donnée.
J'ai un objet Truc qui l'implémente
Je veux la dériver en :
- TrucFixe qui implémente bètement Truc
- TrucEditable qui enrichie l'interface en autorisant l'accesseur 'set' sur la propriété.
=> Ca compile pas : on n'a pas le droit de faire un override sur une propriété en rajoutant un accesseur
Si je fait un 'new' sur la propriété, je perds le polymorphisme : quand je cast mon TrucEditable en Truc et que je récupère la valeur de Info, c'est Truc.Info qui est appelé et pas TrucEditable.Info.
RHAAAAAAAAAAAA c'est agaçant