La sobrecarga de funciones es una característica en C# que nos permite definir múltiples versiones métodos con el mismo nombre, pero diferentes parámetros
El compilador de C# determina que versión del método se debe invocar en función de los argumentos proporcionados durante la llamada.
Esto proporciona flexibilidad y mejora la legibilidad del código al permitir que un mismo método pueda adaptarse a diferentes escenarios.
Si quieres aprender más sobre el Sobrecarga de funciones
consulta el Curso de Introducción a la Programación leer más
Sintaxis de la sobrecarga
Para usar la sobrecarga de funciones, las distintas versiones de la función deben tener diferentes argumentos. Es decir, deben recibir diferentes tipos y / o cantidad de parámetros.
// Suma de dos enteros
public int Sumar(int a, int b)
{
return a + b;
}
// Suma de tres enteros
public int Sumar(int a, int b, int c)
{
return a + b + c;
}
// Suma de dos números de punto flotante
public double Sumar(double a, double b)
{
return a + b;
}
En este ejemplo, el método Sumar
está sobrecargado tres veces
- Una para sumar dos enteros
- Otra para sumar tres enteros
- Otra para sumar dos números de punto flotante.
No es posible emplear sobrecarga utilizando el tipo de parámetro devuelto por la función. Únicamente intervienen los parámetros.
Por ejemplo el siguiente caso, donde tenemos dos MiMetodo
con el mismo número de parámetros, pero diferente return
, no es válido.
public int MiMetodo(int a, int b)
{
}
// esto no puede hacerse
public double MiMetodo(int a, int b)
{
}
Ejemplos prácticos
Calcular el área de un rectángulo
En este ejemplo, se muestra cómo sobrecargar una función para calcular el área de un rectángulo usando diferentes conjuntos de parámetros.
// Función para calcular el área de un rectángulo usando longitud y ancho
public static double CalcularArea(double longitud, double ancho)
{
return longitud * ancho; // Retornar el área del rectángulo
}
// Función para calcular el área de un rectángulo usando un solo lado (cuadrado)
public static double CalcularArea(double lado)
{
return lado * lado; // Retornar el área del cuadrado
}
// Uso
double areaRectangulo = CalcularArea(5.0, 3.0); // Llamar a la función con dos parámetros
double areaCuadrado = CalcularArea(4.0); // Llamar a la función con un parámetro
// Imprimir los resultados
Console.WriteLine($"Área del rectángulo: {areaRectangulo}");
Console.WriteLine($"Área del cuadrado: {areaCuadrado}");
Sobrecarga para sumar números
En este ejemplo, se muestra cómo sobrecargar una función para sumar números de diferentes tipos: enteros y decimales (double).
// Función para sumar dos números enteros
public static int Sumar(int a, int b)
{
return a + b; // Retornar la suma de dos números enteros
}
// Función para sumar dos números decimales (double)
public static double Sumar(double a, double b)
{
return a + b; // Retornar la suma de dos números decimales
}
// Uso
int sumaEnteros = Sumar(3, 5); // Llamar a la función con dos números enteros
double sumaDecimales = Sumar(3.5, 5.7); // Llamar a la función con dos números decimales
// Imprimir los resultados
Console.WriteLine($"Suma de enteros: {sumaEnteros}");
Console.WriteLine($"Suma de decimales: {sumaDecimales}");
Imprimir información de un empleado
En este ejemplo, se muestra cómo sobrecargar una función para imprimir información de un empleado usando diferentes conjuntos de parámetros.
// Función para imprimir información de un empleado usando nombre y edad
public static void ImprimirEmpleado(string nombre, int edad)
{
Console.WriteLine($"Empleado: {nombre}, Edad: {edad}"); // Imprimir nombre y edad
}
// Función para imprimir información de un empleado usando nombre, edad y departamento
public static void ImprimirEmpleado(string nombre, int edad, string departamento)
{
Console.WriteLine($"Empleado: {nombre}, Edad: {edad}, Departamento: {departamento}"); // Imprimir nombre, edad y departamento
}
// Uso
ImprimirEmpleado("Luis", 30); // Llamar a la función con dos parámetros
ImprimirEmpleado("María", 25, "Ventas"); // Llamar a la función con tres parámetros
Estos ejemplos tienen el propósito de mostrar cómo utilizar la sobrecarga. No significa que sea la mejor forma de resolver el problema que abordan. Lo normal es que haya alternativas mejores