fork download
  1. // ===++===
  2. //
  3. // OrtizOL
  4. //
  5. // ===--===
  6. /*============================================================
  7. //
  8. // Clase: ContraVarianza.cs
  9. //
  10. // Propósito: Demostración de la covarianza.
  11. //
  12. ============================================================*/
  13.  
  14. namespace Articulos.Cap03
  15. {
  16. internal class Animal { };
  17. internal class Oso : Animal { };
  18.  
  19. internal interface IPushable<in T>
  20. {
  21. void Push(T obj);
  22. }
  23.  
  24. internal class Pila<T> : IPushable<T>
  25. {
  26. public void Push(T obj) { }
  27. }
  28.  
  29. internal class ContraVarianza
  30. {
  31. public static void Main()
  32. {
  33. IPushable<Animal> animales = new Pila<Animal>();
  34. IPushable<Oso> osos = animales;
  35. osos.Push( new Oso() );
  36. }
  37. }
  38. }
Success #stdin #stdout 0.01s 33480KB
stdin
Standard input is empty
stdout
Standard output is empty