ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Sobrecarga De Metedos


Enviado por   •  19 de Marzo de 2013  •  625 Palabras (3 Páginas)  •  359 Visitas

Página 1 de 3

Al igual que C++, C# permite sobrecargar operadores para utilizarlos en clases propias. Esto hace posible que utilizar un tipo de datos definido por el usuario parezca tan natural y lógico como utilizar un tipo de datos fundamental. Por ejemplo, podría crear un nuevo tipo de datos denominado ComplexNumber para representar un número complejo y proporcionar métodos que realicen operaciones matemáticas en esos números mediante operadores aritméticos estándar, como utilizar el operador + para sumar dos números complejos.

Para sobrecargar un operador, se escribe una función que tenga el nombre del operador seguido del símbolo del operador que se va a sobrecargar. Por ejemplo, a continuación se muestra cómo sobrecargar el operador +:

C#Copiar

public static ComplexNumber operator+(ComplexNumber a, ComplexNumber b)

Todas las sobrecargas de operador son métodos estáticos de la clase. También tenga en cuenta que si sobrecarga el operador de igualdad (==), también debe sobrecargar el operador de desigualdad (!=). Los operadores < y >, y los operadores < = y > = también se deberían sobrecargar en pares.

La lista completa de operadores que se pueden sobrecargar es la siguiente:

•Operadores unarios: +, -, !, ~, ++, --, true, false

•Operadores binarios: +, -, *, /, %, &, |, ^, <<, >>, ==, !=, >, <, >=, <=

El ejemplo de código siguiente crea una clase ComplexNumber que sobrecarga los operadores + y -:

C#Copiar

public class ComplexNumber

{

private int real;

private int imaginary;

public ComplexNumber() : this(0, 0) // constructor

{

}

public ComplexNumber(int r, int i) // constructor

{

real = r;

imaginary = i;

}

// Override ToString() to display a complex number in the traditional format:

public override string ToString()

{

return(System.String.Format("{0} + {1}i", real, imaginary));

}

// Overloading '+' operator:

public static ComplexNumber operator+(ComplexNumber a, ComplexNumber b)

{

return new ComplexNumber(a.real + b.real, a.imaginary + b.imaginary);

}

// Overloading '-' operator:

public static ComplexNumber operator-(ComplexNumber a, ComplexNumber b)

{

return new ComplexNumber(a.real - b.real, a.imaginary - b.imaginary);

}

}

Esta clase permite crear y manipular dos números complejos con código de la manera siguiente:

C#Copiar

class TestComplexNumber

...

Descargar como (para miembros actualizados) txt (3 Kb)
Leer 2 páginas más »
Disponible sólo en Clubensayos.com