TOC

This article has been localized into Spanish by the community.

Clases:

Sobrecarga de Métodos

Muchos de los lenguajes de programación soportan una técnica llamada parámetros por defecto u opcionales. Permite al programador hacer uno o mas parámetros opcionales, dándoles un valor por defecto. Esto es especialmente práctico cuando se añade funcionalidad al código existente.

Por ejemplo, tal vez desees añadir funcionalidad a una función ya existente que ahora requiere que se agreguen uno o más parámetros. Al agregarlos, podrías hacer que el código que llama a esta función no funcione más puesto que no se estarían pasando los nuevos parámetros. La solución a este problema sería que definieras los parámetros añadidos como opcionales y darles un valor por default que hagan que la función asuma los valores en caso de que no se le pasaran los parámetros requeridos.

Los parámetros por defecto fueron introducidos en la versión 4.0 de C#, pero hasta ese punto, quienes escribían código en C# habían estado utilizando otra técnica que, básiciamente, hace lo mismo llamada sobrecarga de métdoos. Esto permite al programador definir varios métodos con el mismo nombre, siempre y cuando reciban un conjunto distinto de parámetros. Cauando utilizas clases de .NET, puedes notar rápidamente que la sobrecarga de métodos está en todos lados. Un buen ejemplo de esto es el método Substring de la clase String; está sobrecargado y se ve así:

string Substring (int startIndex)
string Substring (int startIndex, int length)

Pues llamarla ya sea con uno o dos parámetros. Si solo la llamas con un parámetro, el parámetro de longitud se llena con la longitud total de la cadena, ahorrándonos tiempo cuando simplemente queremos obtenenr la última parte de la cadena.

Así que, al definir varias versiones de la misma función, ¿cómo evitamos tener el mismo código en varios lugares? Fácil: dejamos que la versión simple del método haga que la versión complicada le haga todo el trabajo. Mira el siguiente ejemplo:

class SillyMath
{
    public static int Plus(int number1, int number2)
    {
        return Plus(number1, number2, 0);
    }

    public static int Plus(int number1, int number2, int number3)
    {
        return number1 + number2 + number3;
    }
}

Definimos al método Plus en dos versiones. La primera toma dos parámetros para sumarlos, mientras que la segunda toma tres parámetros. La suma se realiza en la versión que requiere tres parámetros, si solo queremos sumar dos, llamamos a la versión de tres parámetros y le pasamos un cero, actuando como valor por defecto. Lo sé, lo sé, como lo indica el nombre de la clase, es un ejemplo muy simple; pero debería darte una idea de cómo funciona esto de la sobrecarga.

Ahora, cuando te sientas con ganas de hacer matemáticas avanzadas y sumar cuatro numeros (broma), es muy simple agregar una nueva sobrecarga al método:

class SillyMath
{
    public static int Plus(int number1, int number2)
    {
        return Plus(number1, number2, 0);
    }

    public static int Plus(int number1, int number2, int number3)
    {
        return Plus(number1, number2, number3, 0);
    }

    public static int Plus(int number1, int number2, int number3, int number4)
    {
        return number1 + number2 + number3 + number4;
    }
}

Lo genial de esto es que todas tus llamadas al método Plus existentes seguirán funcionando como si nada hubiera cambiado. Entre más C# utilices, más apreciarás la sobrecarga de métodos.


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!