using System;
namespace Articulos.Cap04
{
public class Palabra
{
public string Texto
{
set;
get;
}
///
/// Concatena el texto de dos palabras y retorna una cadena
/// de caracteres.
///
public static string operator +(Palabra p1, Palabra p2)
{
return String.Format("{0} {1}", p1.Texto, p2.Texto);
}
///
/// Concatena el texto de una palabra con un número entero
/// y retorna un objeto Palabra como una instancia nueva.
///
public static Palabra operator +(Palabra p, int i)
{
return new Palabra { Texto = p.Texto + i.ToString()};
}
///
/// Devuelve la representación en cadena de caracteres del campo Texto
/// de la instancia actual.
///
public override string ToString()
{
return Texto;
}
}
public class ClientePalabra
{
public static void Main()
{
// Creación de dos instancias de Palabra
Palabra palabra1 = new Palabra() { Texto = "Hola" };
Palabra palabra2 = new Palabra() { Texto = "Mundo" };
// Impresión de valores en la salida estándar.
Console.WriteLine("\npalabra1: {0}", palabra1);
Console.WriteLine("palabra2: {0}", palabra2);
Console.WriteLine("\nConcatenadas: {0}", palabra1 + palabra2);
Console.WriteLine("Concatadenas con entero: {0}", palabra1 + 13);
Console.WriteLine();
}
}
}