16
2011
Custom Operators C# (Operadores personalizados)
Muchos saludos a todos.
Ahora veremos un poco acerca de los operadores personalizados dentro de C#. Primero entenderemos algunas situaciones técnicas y elementales. Primero sabemos que los operadores son los símbolos ya conocidos por todos que son usados para las operaciones matemáticas (+ – * /) pero no todos pueden ser usados de la misma manera, antes que nada sabemos que la combinación “++” y “–” son para aumentar o disminuir una unidad a un entero, pero no podremos usar una combinación “**” ó “//” ya que dentro del compilador no tienen significado alguno, y como otra restricción tenemos que sí nosotros usamos un operador, el método que define el operador debe tener obligatoriamente dos parámetros, que serán los que el compilador interpretara como objetos a la izquierda y derecha del operador en cuestión. Entonces tendremos claro que si deseamos usar un operador personalizado simple debemos crear un metodo con dos parametros y si usamos el operador combinado, solamente podremos usar ++ ó — y el método solamente aceptará un parámetro valido.
A continuación veremos un ejemplo del uso de operador compuesto para representar la idea. Lo probaremos con un simple proyecto de consola de C#.
class Program
{
static void Main(string[] args)
{
Mascota m = new Mascota("Doggy", 5);
m++;
Console.WriteLine(m.Edad.ToString());
Console.Read();
}
}
public class Mascota
{
private int edad = 0;
public int Edad
{
get { return edad; }
set { edad = value; }
}
private string nombre = "";
public string Nombre
{
get { return nombre; }
set { nombre = value; }
}
public Mascota(string nombre, int edad)
{
this.nombre = nombre;
this.edad = edad;
}
public static Mascota operator ++(Mascota m)
{
return new Mascota(m.Nombre, m.Edad + 1);
}
}
Si colocamos un brakepoint al momento de ejecutar la linea con el objeto “m” junto al operador “++” vemos que el método creado dentro de la clase asignado al operador se ejecuta automáticamente.
Ustedes pueden probar los demás operadores y utilizar su funcionalidad. Este tema me interesó mucho ya que deseaba una forma mas simple de combinar objetos DataTable sin la necesidad de usar el método Merge dentro de dicha clase. Porque no prueban creando un método para combinar datos de listas???.
Si tienen dudas sobre este tema pueden preguntar en los comentarios y les ayudaremos a resolverlo.
Muchos saludos!!!
Related Posts
1 Comment + Add Comment
Leave a comment
Misc
Categories
- Arroba de Oro (2)
- C# Development (14)
- Charlas (1)
- Crystal Reports (1)
- Desarrollo (2)
- Desktop Development (3)
- Microsoft (1)
- Microsoft El Salvador (1)
- Microsoft Expresion Studio (2)
- Microsoft Sql Server (3)
- Microsoft Visual Studio (13)
- Noticias (3)
- Principal (12)
- Silverlight (4)
- Web Development (1)
- Windows (1)
- Windows Phone (1)
- Windows Presentation Foundation (1)
- Xml (1)

An article by








muy interesante.