91 007 17 22 - 09:30 a 14:00 y de 16:00 a 21:00 horas.info@asociacionaepi.es

Sobrecarga de operadores en C#

Posteado en: blog Iniciado por

Sobrecarga de operadores en C#

La sobrecarga de operadores en C# permite redefinir la acción de un operador en relación a una clase.
En el ejemplo de hoy plantearemos una clase Vector y luego procederemos a redefinir el operador + para dicha clase. Luego cuando sumemos dos objetos de esa clase vector generaremos otro objeto de dicha clase que resulte de la suma de sus componentes.
El empleo de la sobrecarga de operadores debe hacerse con mucho cuidado de no desvirtuar el concepto que representa dicho operador (por ejemplo sobrecargar el operador “-” para la clase Vector y que genere la suma de sus componentes).
Vamos con un ejemplo de uso:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace SobrecargaOperadores1
{
class VectorEnteros
{
private int []vec;

public VectorEnteros()
{
vec = new int[5];
}

public void Cargar()
{
for (int f = 0; f < vec.Length; f++)
{
Console.Write("Ingrese componente:");
vec[f] = int.Parse(Console.ReadLine());
}
}

public void Imprimir()
{
for (int f = 0; f < vec.Length; f++)
{
Console.Write(vec[f] + " ");
}
Console.WriteLine();
}

public static VectorEnteros operator +(VectorEnteros v1, VectorEnteros v2)
{
VectorEnteros su = new VectorEnteros();
for (int f = 0; f < su.vec.Length; f++)
{
su.vec[f] = v1.vec[f] + v2.vec[f];
}
return su;
}

}
class Program
{
static void Main(string[] args)
{
VectorEnteros v1 = new VectorEnteros();
Console.WriteLine("Carga del primer vector");
v1.Cargar();
VectorEnteros v2 = new VectorEnteros();
Console.WriteLine("Carga del segundo vector");
v2.Cargar();
Console.WriteLine("Primer Vector");
v1.Imprimir();
Console.WriteLine("Segundo Vector");
v2.Imprimir();
VectorEnteros vt;
vt = v1 + v2;
Console.WriteLine("Vector Resultante");
vt.Imprimir();
Console.ReadKey();
}
}
}
image_pdfimage_print

Leave a Reply

Uso de cookies

Utilizamos cookies propias y de terceros para mejorar la experiencia de navegación y ofrecer contenidos y publicidad de interés. Al continuar con la navegación entendemos que se acepta nuestra política de privacidad y cookies, pinche el enlace para mayor información.

ACEPTAR
Aviso de cookies