fork download
  1. using System;
  2.  
  3. namespace Articulos.Cap04
  4. {
  5. // Delegado para transformar valores:
  6. public delegate int Transformador(int x);
  7.  
  8. public class Utilitario
  9. {
  10. public static void Transformar(int[] valores, Transformador t)
  11. {
  12. for (int i = 0; i < valores.Length; ++i)
  13. {
  14. valores[i] = t(valores[i]);
  15. }
  16. }
  17. }
  18.  
  19. public class UtilMetodoPlugin
  20. {
  21. public static void Main()
  22. {
  23. int[] valores = {1, 2, 3, 4, 5};
  24. Utilitario.Transformar(valores, Cuadrado);
  25.  
  26. Console.WriteLine("Cuadrados para los elementos de `Valores`:");
  27. foreach (int i in valores)
  28. {
  29. Console.Write("{0} ", i.ToString());
  30. }
  31.  
  32. Console.WriteLine();
  33.  
  34. int[] valores2 = {1, 2, 3, 4, 5};
  35. Utilitario.Transformar(valores2, Cubo);
  36.  
  37. Console.WriteLine("Cubo para los elementos de `Valores`:");
  38. foreach (int i in valores2)
  39. {
  40. Console.Write("{0} ", i.ToString());
  41. }
  42.  
  43. Console.WriteLine();
  44. }
  45.  
  46. public static int Cuadrado(int x)
  47. {
  48. return x * x;
  49. }
  50.  
  51. public static int Cubo(int x)
  52. {
  53. return x * x * x;
  54. }
  55. }
  56. }
Success #stdin #stdout 0.03s 33920KB
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