using System; namespace Recetas.Ch01 { public class Palabra { public string Texto { get; set; } public static explicit operator Palabra(string texto) { return new Palabra() {Texto = texto}; } public static implicit operator string(Palabra palabra) { return palabra.Texto; } public static explicit operator int(Palabra palabra) { return palabra.Texto.Length; } public override string ToString() { return Texto; } } public class ClientePalabra { public static void Main() { // Creación de una instancia de Palabra Palabra palabra1 = new Palabra() {Texto = "Hola"}; // Conversión implícita desde Palabra a string string cadena1 = palabra1; // Conversión explícita desde Palabra a string string cadena2 = (string) palabra1; Console.WriteLine("{0} - {1}", cadena1, cadena2); // Conversión explícita de string a Palabra Palabra palabra2 = (Palabra) "Hola"; // Conversión explícita de Palabra a int int contadorCaracteres = (int) palabra2; Console.WriteLine("Longitud de {0} = {1}", palabra2.ToString(), contadorCaracteres); Console.WriteLine(); } } }