Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Actividad 4. Sobrecarga
Equipo 4
LETICIA AMALIA JUAREZ DIEGO
JOSE LUIS JIMENEZ DE LA LUZ
JAVIER CHAVEZ MOCIOS
JAVIER RICARDO PEGUEROS VAZQUEZ
A pesar de devolver un valor int en lugar de un bool, su lista de argumentos es idntica, por
lo que el compilador avisara mostrara un mensaje de un error. Sin embargo, podramos
sobrecrgalo de estos modos:
public bool NuevoIngreso(single cant)
{...}
public int NuevoIngreso(double cantidad, double
{...}
argumento2)
argumento2)
Cada sobrecarga tiene marcado en negrilla el elemento que la hace diferente de las dems. Y as
hasta las que queramos de aadir para sobrecargas.
Hay un detalle que tambin es importante: lo que diferencia las listas de argumentos de las
diferentes sobrecargas no es el nombre de las variables, sino el tipo de cada una de ellas. Por
ejemplo, la siguiente sobrecarga tampoco sera vlida:
public bool NuevoIngreso(double cantidad) //Error. No se puede sobrecargar as
{...}
public bool NuevoIngreso(double num) //Error. No se puede sobrecargar as
{...}
A pesar de que el argumento tiene un nombre distinto (num en lugar de cantidad), es del mismo tipo
que el del mtodo del ejemplo, por lo que el compilador tampoco sabra cul de las dos sobrecargas
ejecutar.
Bueno, supongo que ahora vendr la pregunta: Cul de todas las sobrecargas vlidas ejecutar si
efecto la siguiente llamada?
Por ejemplo
MisCuentas.NuevoIngreso(200.53);
Efectivamente, aqu podra haber dudas, ya que el nmero 200.53 puede ser tanto double, como
single. Para nmeros decimales, el compilador ejecutar la sobrecarga con el argumento de tipo
double. En el caso de nmeros enteros, el compilador ejecutar la sobrecarga cuyo argumento mejor
se adapte con el menor consumo de recursos (int, uint, long y unlong, por este orden). Y ahora
vendr otra pregunta: y si yo quiero que, a pesar de todo, se ejecute la sobrecarga con el argumento
de tipo single?
Ejemplo 1:
using
using
using
using
System;
System.Collections.Generic;
System.Linq;
System.Text;
namespace SobrecargaDeMetodos
{
class Impresion
{
//primer mtodo imprimir sin argumentos
public void Imprimir()
{
System.Console.WriteLine("Sistema de Usuarios");
}
//segundo mtodo Imprimir con un argumento
Fuentes de consulta:
MSDN. Microsoft Developer Network. (2015). Ensamblados en Common Language
Runtime.
Recuperado de:
1. https://msdn.microsoft.com/es-es/library/
2. http://www.itnuevolaredo.edu.mx/takeyas/apuntes/poo/Apuntes/02.-%20Clases%20y
%20objetos.pdf
3.https://books.google.com.mx/books?
id=9_9Uxdmb_QUC&pg=PA38&lpg=PA38&dq=sobrecarga+de+m%C3%A9todos+en+C
%23&source=bl&ots=xnZxXGuSU5&sig=Mfnhkxb5cZFAMCHNtfBBOEK6kaw&hl=es&sa=X
&ei=dTwvVfqmDImfsAXBoIDoAg&ved=0CE8Q6AEwCDge#v=onepage&q=sobrecarga
%20de%20m%C3%A9todos%20en%20C%23&f=false
4. http://www.mundonet.es/metodos-sobrecarga-de-metodos-argumentos-pasados-por-valor-y-porreferencia-metodos