J'ai la liste suivante d'objets de diapositive. Sur la base de la valeur de var 'type' de l'objet, je veux monter l'objet Slide dans la liste. C'est possible?C# Comment redescendre un objet
foreach(Slide slide in slidePack.slides)
{
if(slide.type == SlideType.SECTION_MARKER)
{
//upcast Slide to Section
}
}
Section
étend Slide
et ajoute un paramètre supplémentaire.
Ça me semble un downcast. Quoi qu'il en soit, c'est dangereux (ou un défaut de conception) de le faire. Par downcasting à un type plus spécialisé, vous attendez plus de l'objet que ce qu'il peut être capable de gérer. Si vous ressentez le besoin de baisser, envisagez d'utiliser des interfaces. –
Nous avons convenu que les interfaces peuvent être utiles dans certaines de ces situations, mais je ne pense pas que nous devrions dire «jamais baissé». Ce n'est pas toujours un défaut de conception, ni nécessairement dangereux. – Allan