fork download
  1. using System;
  2.  
  3. namespace Articulos.Cap04
  4. {
  5. public interface ITransformador
  6. {
  7. int Transformar (int x);
  8. }
  9.  
  10. public class Utilitario
  11. {
  12. public static void TransformarTodo (int[] valores, ITransformador t)
  13. {
  14. for (int i = 0; i < valores.Length; i++)
  15. {
  16. valores[i] = t.Transformar (valores[i]);
  17. }
  18. }
  19. }
  20.  
  21. public class Cuadrado : ITransformador
  22. {
  23. public int Transformar(int x)
  24. {
  25. return x * x;
  26. }
  27. }
  28.  
  29. public class Cubico : ITransformador
  30. {
  31. public int Transformar (int x)
  32. {
  33. return x * x * x;
  34. }
  35. }
  36.  
  37. public class Aplicacion
  38. {
  39. public static void Main()
  40. {
  41. int[] valores = {1, 2, 3, 4, 5};
  42. Utilitario.TransformarTodo(valores, new Cuadrado());
  43.  
  44. Console.WriteLine("Cuadrados para los elementos de `Valores`:");
  45. foreach (int i in valores)
  46. {
  47. Console.Write("{0} ", i.ToString());
  48. }
  49.  
  50. Console.WriteLine();
  51.  
  52. int[] valores2 = {1, 2, 3, 4, 5};
  53. Utilitario.TransformarTodo(valores2, new Cubico());
  54.  
  55. Console.WriteLine("Cubo para los elementos de `Valores`:");
  56. foreach (int i in valores2)
  57. {
  58. Console.Write("{0} ", i.ToString());
  59. }
  60.  
  61. Console.WriteLine();
  62. }
  63. }
  64. }
Success #stdin #stdout 0.03s 33928KB
stdin
Standard input is empty
stdout
Cuadrados para los elementos de `Valores`:
1 4 9 16 25 
Cubo para los elementos de `Valores`:
1 8 27 64 125