fork download
  1. using System;
  2.  
  3. public class SobrecargaIndizador
  4. {
  5. private string[] Datos;
  6. private int TamanioDatos;
  7.  
  8. public SobrecargaIndizador (int tamanioDatos)
  9. {
  10. TamanioDatos = tamanioDatos;
  11. Datos = new string[TamanioDatos];
  12.  
  13. // se inicializa los elementos del arreglo con la cadena "vacío"
  14. for (int i = 0; i < TamanioDatos; ++i)
  15. {
  16. Datos[i] = "vacío";
  17. }
  18. }
  19.  
  20. // primer indizador con parämetro de tipo int y valor de retorno string
  21. public string this[int indice]
  22. {
  23. get
  24. {
  25. return Datos[indice];
  26. }
  27. set
  28. {
  29. Datos[indice] = value;
  30. }
  31. }
  32.  
  33. // segundo indizador con parámetro de tipo string
  34. public string this[string dato]
  35. {
  36. get
  37. {
  38. int contador = 0;
  39.  
  40. for (int i = 0; i < TamanioDatos; ++i)
  41. {
  42. if (Datos[i].Equals(dato))
  43. {
  44. ++contador;
  45. }
  46. }
  47.  
  48. return contador.ToString();
  49. }
  50. set
  51. {
  52. for (int i = 0; i < TamanioDatos; ++i)
  53. {
  54. if (Datos[i].Equals(dato))
  55. {
  56. Datos[i] = value;
  57. }
  58. }
  59. }
  60. }
  61.  
  62. public static void Main ()
  63. {
  64. int tamanio = 10;
  65. SobrecargaIndizador si = new SobrecargaIndizador(tamanio);
  66.  
  67. // asigna objetos string a través del indizador con parámetro int
  68. si[9] = "Desarrollador";
  69. si[3] = "Programador";
  70. si[5] = "Arquitecto";
  71.  
  72. // asiga objeto string a través del indizador con parámetro string
  73. si["vacío"] = "Analista de Sistemas";
  74.  
  75. // Contenido del indizador
  76. for (int i = 1; i < tamanio; ++i)
  77. {
  78. Console.WriteLine ("Datos[{0}]: {1}", i, si[i]);
  79. }
  80. }
  81. }
  82.  
Success #stdin #stdout 0.03s 33912KB
stdin
Standard input is empty
stdout
Datos[1]: Analista de Sistemas
Datos[2]: Analista de Sistemas
Datos[3]: Programador
Datos[4]: Analista de Sistemas
Datos[5]: Arquitecto
Datos[6]: Analista de Sistemas
Datos[7]: Analista de Sistemas
Datos[8]: Analista de Sistemas
Datos[9]: Desarrollador