Dans le cas où vous avez une fonction qui fonctionne pour beaucoup de différents types personnalisés avec la même mise en œuvre, est-il correct d'utiliser un modèle de conception comme celui-ci ?:Méthode unique pour plusieurs types?
type1 implicitly casts to type0
type2 implicitly casts to type0
type3 implicitly casts to type0
Operate (type0)
et appelez:
type1 a
type2 b
type3 c
Operate (a)
Operate (b)
Operate (c)
Y a-t-il des problèmes avec cette technique? Performance sage, clarté, etc?
EDIT: Également par moulage implicite, je voulais dire moulages personnalisés pour le type sans perte de données, juste commodité. Supposons que vous ayez une classe Pixel, puis en envoyant une instance de cette méthode à une méthode qui prend un point2, le pixel est automatiquement envoyé à un point2.
Intellisense ne vous aidera pas ici. Lorsque vous tapez la méthode Operate(), Intellisense vous indiquera seulement qu'il prend un type0. Vous ne serez pas en mesure de dire que vous pourriez mettre dans un type1 sauf si vous ouvrez la définition de type1. – foson
En fait, il suffit d'appuyer sur les touches haut et bas pour faire défiler les surcharges une fois Intellisense vous montre la méthode. –
Clairement cela ne fonctionne que pour Visual Studio 2005 et supérieur, pour tout autre IDE et votre point peut être correct. –