et Downcasting transtypage ascendant:
transtypage ascendant: Coulée de dérivés de classe à base Downcasting: Casting de la classe de base à la classe dérivée
comprenons même comme un exemple:
Tenir compte deux classes forme que ma classe parente et le Cercle comme une classe dérivée, définie comme suit:
class Shape
{
public int Width { get; set; }
public int Height { get; set; }
}
class Circle : Shape
{
public int Radius { get; set; }
public bool FillColor { get; set; }
}
transtypage ascendant:
forme s = new Shape();
Cercle c = s; Les deux c et s font référence au même emplacement de mémoire, mais les deux ont des vues différentes. En utilisant la référence "c", vous pouvez accéder à toutes les propriétés de la classe de base et de la classe dérivée mais en utilisant la référence "s" vous pouvez accéder aux propriétés de la seule classe parent.
Un exemple pratique de classe est de transtypage ascendant ruisseau qui est baseclass de tous les types de lecteur de flux du framework .NET:
lecteur StreamReader = new StreamReader (nouveau FileStreamReader());
Ici, FileStreamReader() est mis à jour vers streadm reder.
Downcasting:
forme = new Cercle(); ici comme expliqué ci-dessus, vue de s est le seul parent, afin de le rendre à la fois parent et un enfant nous avons besoin de le baisser
var c = (Cercle) s;
L'exemple pratique de Downcasting est la classe de boutons de WPF.
J'espère que cela ne vous dérange pas, j'ai corrigé les "erreurs de syntaxe" dans votre question;) – RCIX
désolé je suis un peu pauvre en anglais – user184805
C'est ok, pas de problème! – RCIX