Dominando la Sobrecarga de Métodos en C#: Conceptos, Ejemplos y Buenas Prácticas
Dominando la Sobrecarga de Métodos en C#
Descubre cómo sobrecargar métodos en C#, incluyendo cambios en el número, tipos y orden de parámetros, con ejemplos claros.
En C#, una clase puede contener múltiples métodos con el mismo nombre pero listas de parámetros distintas; esto se llama sobrecarga de métodos. Por ejemplo:
void mostrar() { ... } void mostrar(int a) { ... } float mostrar(double a) { ... } float mostrar(int a, float b) { ... }
Aquí, el método mostrar() está sobrecargado. Estos métodos comparten el mismo nombre pero aceptan diferentes argumentos.
Nota: La sobrecarga se determina únicamente por las listas de parámetros; los tipos de retorno pueden diferir.
1. Cambiando el Número de Parámetros
Puedes sobrecargar un método si el número de parámetros difiere.
void mostrar(int a) { ... } ... void mostrar(int a, int b) { ... }
Ejemplo:
using System; namespace SobrecargaMetodo { class Program { // método con un parámetro void mostrar(int a) { Console.WriteLine("Argumentos: " + a); } // método con dos parámetros void mostrar(int a, int b) { Console.WriteLine("Argumentos: " + a + " y " + b); } static void Main(string[] args) { Program p1 = new Program(); p1.mostrar(100); p1.mostrar(100, 200); Console.ReadLine(); } } }
Salida
Argumentos: 100 Argumentos: 100 y 200
Según el número de argumentos pasados, se invoca la sobrecarga apropiada.
p1.mostrar(100)llama a la versión de un parámetro.p1.mostrar(100, 200)llama a la versión de dos parámetros.
2. Cambiando los Tipos de Datos de los Parámetros
La sobrecarga también funciona cuando los tipos de parámetros difieren, incluso si la cantidad es la misma.
void mostrar(int a) { ... } ... void mostrar(string b) { ... }
Ejemplo:
using System; namespace SobrecargaMetodo { class Program { // método con parámetro int void mostrar(int a) { Console.WriteLine("tipo int: " + a); } // método con parámetro string void mostrar(string b) { Console.WriteLine("tipo string: " + b); } static void Main(string[] args) { Program p1 = new Program(); p1.mostrar(100); p1.mostrar("Programiz"); Console.ReadLine(); } } }
Salida
tipo int: 100 tipo string: Programiz
p1.mostrar(100)llama a la sobrecargaint.p1.mostrar("Programiz")llama a la sobrecargastring.
3. Cambiando el Orden de los Parámetros
Cuando la lista de parámetros tiene los mismos tipos y cantidad, cambiar su orden crea sobrecargas distintas.
void mostrar(int a, string b) { ... } ... void mostrar(string b, int a) { ... }
Ejemplo:
using System; namespace SobrecargaMetodo { class Program { // método con parámetros int y string void mostrar(int a, string b) { Console.WriteLine("int: " + a); Console.WriteLine("string: " + b); } // método con parámetros string e int void mostrar(string b, int a) { Console.WriteLine("string: " + b); Console.WriteLine("int: " + a); } static void Main(string[] args) { Program p1 = new Program(); p1.mostrar(100, "Programación"); p1.mostrar("Programiz", 400); Console.ReadLine(); } } }
Salida
int: 100 string: Programación string: Programiz int: 400
p1.mostrar(100, "Programación")invoca la sobrecargaint, string.p1.mostrar("Programiz", 400)invoca la sobrecargastring, int.
Lenguaje C
- Método 21 de la EPA: Protocolo Integral de Detección y Reparación de Fugas
- Dominando clases y métodos abstractos en C#: Guía práctica
- Entendiendo clases y métodos parciales en C#
- Dominando clases y métodos sealed en C#: Cuándo usarlos, ejemplos claros y mejora de seguridad y rendimiento
- Dominando la Sobrecarga de Constructores en C#
- Métodos en C#: Definición, llamada y uso de funciones
- Sobrecarga de operadores en C# para tipos personalizados
- Métodos anónimos en C#: Simplificando el uso de delegados
- Comprender las Tasks en Verilog: Funciones vs Tasks, sintaxis y uso
- Dominar las tareas de visualización en Verilog: Depuración y registro eficientes
- Dominando la Sobrecarga de Operadores en Python: Guía Práctica