Si:coulée permanente à une superclasse
class Car : Automobile
{}
je peux faire:
Car toyota = new Car();
Automobile tauto = (Automobile)toyota;
mais si je le fais tauto.GetType().Name
il sera toujours Car.
Est-il possible d'effectuer un cast, de sorte que le type est définitivement changé en Automobile (sans avoir à cloner l'objet)? Le problème que j'essaye de surmonter est qu'il n'y a aucun héritage multiple dans C#, et je dois fusionner des objets (avec la même signature) de 2 services, dans une méthode, et retourner un type.
Juste curieux: pourquoi voudriez-vous faire cela? –
Désolé de demander mais pourquoi voudriez-vous faire cela? L'objet ** est ** une voiture, pas une automobile. Si vous voulez une automobile, instanciez-en une. – Lazarus
longue histoire, mais elle implique Entity Framework, POCOs, et son incapacité à utiliser la même classe POCO à être retourné par 2 ensembles d'entités différentes. Donc je dois contourner cela par héritage. Mais à l'extérieur, je voudrais que l'objet des deux vues soit le même .. donc il suffit de retourner la super classe. la diffusion simple est problématique car des choses comme le sérialiseur WCF et les génériques .net 3.5 traitent toujours l'objet cast comme sous-classe –