DPRN2 U1 A4 Equipo4 Modificado

October 17, 2017 | Author: JOSE LUIS | Category: Compiler, C Sharp (Programming Language), Computer Programming, Software Development, Computing
Share Embed Donate


Short Description

Descripción: UNDAD...

Description

Universidad Abierta y a Distancia de México

Ingeniería en Desarrollo de Software

Asignatura: Programación .NET II

Unidad 1. Desarrollo de objetos en la plataforma .NET

Actividad 4. Sobrecarga

Facilitadora: Rosa Teresa Urvicio Ramirez

17 de Abril del 2015

Actividad 4. Sobrecarga Foro En esta actividad analizarán algunos ejemplos del uso de sobrecarga de métodos. La actividad es colaborativa, por lo que tu Facilitador(a) te asignará un número de equipo para trabajar:

Equipo 4 LETICIA AMALIA JUAREZ DIEGO JOSE LUIS JIMENEZ DE LA LUZ JAVIER CHAVEZ MOCIÑOS JAVIER RICARDO PEGUEROS VAZQUEZ

Con la ayuda de tu equipo de trabajo: la ayuda de tu equipo de trabajo: 1. Identifica algunos problemas relacionados con la sobrecarga de métodos, particularmente que sean observables en aplicaciones reales o en problemas propuestos por ustedes, donde pueda plantearse como solución una sobrecarga. 2. Consulta la Rúbrica de participación en foros que se encuentra disponible en la sección Material de apoyo. 3. Al ingresar al foro realicen la aportación por Equipo y agreguen sus conclusiones.

APLICACIÓN GÉNERICA DE LA SOBRECARGA DE MÉTODOS EN C# La sobrecarga de métodos consiste en crear varios métodos con el mismo nombre en la misma clase, pero siempre que su lista de argumentos sea distinta, es decir, no puede haber dos métodos que se llamen igual con la misma lista de argumentos, aunque devuelvan datos de distinto tipo. La sobrecarga de un método se utiliza cuando se requiera realizar la funcionalidad del método pero con un conjunto diferente de parámetros al conjunto de parámetros original del método. Por ejemplo, no "podríamos sobrecargar el método “NuevoIngreso” de este modo: public bool NuevoIngreso(double cantidad) public int NuevoIngreso(double cantidad) //Error. No se puede sobrecargar así {...}

A pesar de devolver un valor int en lugar de un bool, su lista de argumentos es idéntica, por lo que el compilador avisaría mostraría un mensaje de un error. Sin embargo, podríamos sobrecárgalo de estos modos: public bool NuevoIngreso(single cant) {...} public int NuevoIngreso(double cantidad, double {...}

argumento2)

public int NuevoIngreso(single cantidad, double {...}

argumento2)

Cada sobrecarga tiene marcado en negrilla el elemento que la hace diferente de las demás. Y así hasta las que queramos de añadir para sobrecargas. Hay un detalle que también 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 sería válida: 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 método del ejemplo, por lo que el compilador tampoco sabría cuál de las dos sobrecargas ejecutar. Bueno, supongo que ahora vendrá la pregunta: ¿Cuál de todas las sobrecargas válidas ejecutará si efectúo la siguiente llamada? Por ejemplo MisCuentas.NuevoIngreso(200.53); Efectivamente, aquí podría haber dudas, ya que el número 200.53 puede ser tanto double, como single. Para números decimales, el compilador ejecutará la sobrecarga con el argumento de tipo double. En el caso de números 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 método imprimir sin argumentos public void Imprimir() { System.Console.WriteLine("Sistema de Usuarios"); } //segundo método Imprimir con un argumento

public void Imprimir(string mensaje) { System.Console.WriteLine(mensaje); } //tercer método Imprimir con un argumento más y de diferente tipo public void Imprimir(string titulo, string mensaje) { System.Console.WriteLine("===== " + titulo + " ====="); System.Console.WriteLine(mensaje); } } class Programa { static void Main() { Impresion im = new Impresion(); im.Imprimir(); im.Imprimir("Siga las instrucciones en pantalla", "Use minúsculas"); im.Imprimir(" Gracias! "); System.Console.ReadLine(); } }

}

Pantalla con la ejecución del programa Ejempo 2:

public static int prueba(inta) { return 2 * a; } public static int prueba(int a, int b
View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF