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();
}
}
}
dXNpbmcgU3lzdGVtOwoKbmFtZXNwYWNlIFJlY2V0YXMuQ2gwMQp7CglwdWJsaWMgY2xhc3MgUGFsYWJyYQoJewoJCXB1YmxpYyBzdHJpbmcgVGV4dG8KCQl7CgkJCWdldDsKCQkJc2V0OwoJCX0KCQkKCQlwdWJsaWMgc3RhdGljIGV4cGxpY2l0IG9wZXJhdG9yIFBhbGFicmEoc3RyaW5nIHRleHRvKQoJCXsKCQkJcmV0dXJuIG5ldyBQYWxhYnJhKCkge1RleHRvID0gdGV4dG99OwoJCX0KCQkKCQlwdWJsaWMgc3RhdGljIGltcGxpY2l0IG9wZXJhdG9yIHN0cmluZyhQYWxhYnJhIHBhbGFicmEpCgkJewoJCQlyZXR1cm4gcGFsYWJyYS5UZXh0bzsKCQl9CgkJCgkJcHVibGljIHN0YXRpYyBleHBsaWNpdCBvcGVyYXRvciBpbnQoUGFsYWJyYSBwYWxhYnJhKQoJCXsKCQkJcmV0dXJuIHBhbGFicmEuVGV4dG8uTGVuZ3RoOwoJCX0KCQkKCQlwdWJsaWMgb3ZlcnJpZGUgc3RyaW5nIFRvU3RyaW5nKCkKCQl7CgkJCXJldHVybiBUZXh0bzsKCQl9Cgl9CgkKCXB1YmxpYyBjbGFzcyBDbGllbnRlUGFsYWJyYQoJewoJCXB1YmxpYyBzdGF0aWMgdm9pZCBNYWluKCkKCQl7CgkJCS8vIENyZWFjacOzbiBkZSB1bmEgaW5zdGFuY2lhIGRlIFBhbGFicmEKCQkJUGFsYWJyYSBwYWxhYnJhMSA9IG5ldyBQYWxhYnJhKCkge1RleHRvID0gIkhvbGEifTsKCQkJCgkJCS8vIENvbnZlcnNpw7NuIGltcGzDrWNpdGEgZGVzZGUgUGFsYWJyYSBhIHN0cmluZwoJCQlzdHJpbmcgY2FkZW5hMSA9IHBhbGFicmExOwoJCQkKCQkJLy8gQ29udmVyc2nDs24gZXhwbMOtY2l0YSBkZXNkZSBQYWxhYnJhIGEgc3RyaW5nCgkJCXN0cmluZyBjYWRlbmEyID0gKHN0cmluZykgcGFsYWJyYTE7CgkJCQoJCQlDb25zb2xlLldyaXRlTGluZSgiezB9IC0gezF9IiwgY2FkZW5hMSwgY2FkZW5hMik7CgkJCQoJCQkvLyBDb252ZXJzacOzbiBleHBsw61jaXRhIGRlIHN0cmluZyBhIFBhbGFicmEKCQkJUGFsYWJyYSBwYWxhYnJhMiA9IChQYWxhYnJhKSAiSG9sYSI7CgkJCQoJCQkvLyBDb252ZXJzacOzbiBleHBsw61jaXRhIGRlIFBhbGFicmEgYSBpbnQKCQkJaW50IGNvbnRhZG9yQ2FyYWN0ZXJlcyA9IChpbnQpIHBhbGFicmEyOwoJCQkKCQkJQ29uc29sZS5Xcml0ZUxpbmUoIkxvbmdpdHVkIGRlIHswfSA9IHsxfSIsIHBhbGFicmEyLlRvU3RyaW5nKCksIGNvbnRhZG9yQ2FyYWN0ZXJlcyk7CgkJCQoJCQlDb25zb2xlLldyaXRlTGluZSgpOwoJCX0KCX0KfQ==