Si je crée la classe A et que la classe B hérite de la classe A, pourquoi C# m'oblige-t-il à basculer explicitement entre eux?Coulée explicite de types dérivés C#
Par exemple:
public class Mammal
{
}
public class Dog : Mammal
{
}
...
Mammal foo = new Dog(); // Invalid, wants an explicit cast
Mammal bar = (Mammal)new Dog(); // This one works
Je suis juste curieux de ce que le raisonnement est derrière cette restriction.
La distribution explicite ne devrait pas être nécessaire, et quand je teste votre code la première version fonctionne très bien. Pourriez-vous poster un échantillon plus complet? – itowlson
Je me demande qui votera cette question quand elle implique que la diffusion ne fonctionne pas automatiquement. – Blindy
Downvoted parce que ce code fonctionne réellement –