fork download
  1. using System;
  2.  
  3. namespace Recetas.Ch01
  4. {
  5. public class Palabra
  6. {
  7. public string Texto
  8. {
  9. get;
  10. set;
  11. }
  12.  
  13. public static explicit operator Palabra(string texto)
  14. {
  15. return new Palabra() {Texto = texto};
  16. }
  17.  
  18. public static implicit operator string(Palabra palabra)
  19. {
  20. return palabra.Texto;
  21. }
  22.  
  23. public static explicit operator int(Palabra palabra)
  24. {
  25. return palabra.Texto.Length;
  26. }
  27.  
  28. public override string ToString()
  29. {
  30. return Texto;
  31. }
  32. }
  33.  
  34. public class ClientePalabra
  35. {
  36. public static void Main()
  37. {
  38. // Creación de una instancia de Palabra
  39. Palabra palabra1 = new Palabra() {Texto = "Hola"};
  40.  
  41. // Conversión implícita desde Palabra a string
  42. string cadena1 = palabra1;
  43.  
  44. // Conversión explícita desde Palabra a string
  45. string cadena2 = (string) palabra1;
  46.  
  47. Console.WriteLine("{0} - {1}", cadena1, cadena2);
  48.  
  49. // Conversión explícita de string a Palabra
  50. Palabra palabra2 = (Palabra) "Hola";
  51.  
  52. // Conversión explícita de Palabra a int
  53. int contadorCaracteres = (int) palabra2;
  54.  
  55. Console.WriteLine("Longitud de {0} = {1}", palabra2.ToString(), contadorCaracteres);
  56.  
  57. Console.WriteLine();
  58. }
  59. }
  60. }
Success #stdin #stdout 0.03s 33856KB
stdin
Standard input is empty
stdout
Hola - Hola
Longitud de Hola = 4