fork download
  1. using System;
  2. using System.Text;
  3. using System.Reflection;
  4.  
  5. namespace Recetas.Cap03
  6. {
  7. public class CreacionStringBuilder
  8. {
  9. public static void Main()
  10. {
  11. // Invoca a `CrearStringBuilder` para recuperar una instancia
  12. // de StringBuilder:
  13. StringBuilder sb = CrearStringBuilder("Blog", 23);
  14.  
  15. // Agrega cadena al inicio de la cadena original:
  16. sb.Append(" xCSw");
  17.  
  18. Console.WriteLine (sb.ToString());
  19.  
  20. }
  21.  
  22. public static StringBuilder CrearStringBuilder(string cadenaInicial, int capacidadInicial)
  23. {
  24. // Representación Type de StringBuilder:
  25. Type repreType = typeof (StringBuilder);
  26.  
  27. // Crea arreglo Type con la espeficiación de la firma
  28. // de parámetros de uno de los contructorese de StringBuilder:
  29. Type[] argsTipos = new Type[] { typeof (String), typeof(Int32)};
  30.  
  31. // Obtención de constructor sobre ConstructorInfo:
  32. ConstructorInfo ctorInfo = repreType.GetConstructor(argsTipos);
  33.  
  34. // Especificación de los argumentos para el constructor:
  35. object[] valoresArgs = new object[] {cadenaInicial, capacidadInicial};
  36.  
  37. // Creación del objeto de `StringBuilder`:
  38. StringBuilder sb = (StringBuilder) ctorInfo.Invoke(valoresArgs);
  39.  
  40. return sb;
  41. }
  42. }
  43. }
Success #stdin #stdout 0.03s 33928KB
stdin
Standard input is empty
stdout
Blog xCSw