CSharp

Tutorial CSharp: Funciones

CSharp funciones: declaración y ejemplos. Aprende a declarar y usar funciones en CSharp con ejemplos prácticos y detallados.

En C#, las funciones son bloques de código que realizan una tarea específica. Estas funciones pueden ser llamadas cuando sea necesario en cualquier parte del programa, evitando la repetición del mismo código. Esto permite que los programas sean más fácilmente legibles y manejables.

Las funciones en C# son también conocidas como métodos si se declaran dentro de una clase o un struct.

Declaración de funciones

En C#, una función se declara de la siguiente manera:

tipo_retorno NombreFuncion(tipo_parametro nombre_parametro)
{
    // Código de la función
}

Donde:

  • tipo_retorno: Es el tipo de dato que devuelve la función. Si la función no devuelve nada, se utiliza la palabra clave void.
  • NombreFuncion: Es el nombre que se le da a la función. Por convención, los nombres de las funciones en C# comienzan con una letra mayúscula.
  • tipo_parametro: Es el tipo de dato del parámetro que recibe la función. Si la función no recibe parámetros, solo se dejan los paréntesis vacíos. Si la función recibe varios parámetros, se separan por comas.
  • nombre_parametro: Es el nombre que se le da al parámetro que recibe la función.

Por ejemplo, una función que suma dos números podría tener el siguiente aspecto:

int Sumar(int numero1, int numero2)
{
    return numero1 + numero2;
}

Llamada de funciones

Para llamar a una función, simplemente se utiliza el nombre de la función seguido de los parámetros dentro de paréntesis. Por ejemplo, para llamar a la función Sumar declarada anteriormente, se podría hacer de la siguiente manera:

int resultado = Sumar(5, 7); // resultado es igual a 12

Si la función no tiene parámetros de entrada, se debe llamar con los paréntesis vacíos.

void Saludar()
{
    Console.WriteLine("¡Hola!");
}
  
Saludar(); // Imprime "¡Hola!"

Funciones con parámetros opcionales

En C#, las funciones pueden tener parámetros opcionales, es decir, parámetros que tienen un valor por defecto y que no necesitan ser especificados al llamar a la función. Para declarar un parámetro opcional, se utiliza el operador = seguido del valor por defecto. Por ejemplo, la función Sumar podría modificarse para tener un parámetro opcional de la siguiente manera:

int Sumar(int numero1, int numero2 = 0)
{
    return numero1 + numero2;
}

Ahora, la función Sumar se puede llamar con uno o dos parámetros:

int resultado1 = Sumar(5, 7); // resultado1 es igual a 12
int resultado2 = Sumar(5); // resultado2 es igual a 5

Los parámetros opcionales siempre deben definirse a continuación de todos los parámetros requeridos. Un parámetro requerido no puede ir a continuación de uno opcional.

// El siguiente código no compila
int Sumar(int numero1 = 0, int numero2)
{
    return numero1 + numero2;
}

El código anterior no compila, porque numero2 es un parámetro requerido pero va a continuación de numero1, que es opcional.

Funciones con número variable de parámetros

En C#, una función puede aceptar un número variable de parámetros utilizando el modificador params. Los parámetros variables deben ser del mismo tipo y se pasan como un array a la función. Por ejemplo, la función Sumar podría modificarse para aceptar un número variable de parámetros de la siguiente manera:

int Sumar(params int[] numeros)
{
    int suma = 0;
    foreach (int numero in numeros)
    {
        suma += numero;
    }
    return suma;
}

Ahora, la función Sumar puede ser llamada con cualquier número de parámetros:

int resultado1 = Sumar(5, 7, 10); // resultado1 es igual a 22
int resultado2 = Sumar(5, 7); // resultado2 es igual a 12
int resultado3 = Sumar(5); // resultado3 es igual a 5

Sobrecarga de funciones (overloading)

La sobrecarga de funciones es un concepto en la programación orientada a objetos donde una clase puede tener múltiples funciones con el mismo nombre pero con diferente lista de parámetros. Estos parámetros pueden diferir en número, tipo (como int, float, etc.) y orden de parámetros. Diferir únicamente en el tipo de retorno NO es suficiente.

En C#, se pueden sobrecargar métodos, lo que permite a una clase tener varios métodos con el mismo nombre pero con una lista de parámetros diferente.

Cómo funciona la sobrecarga de funciones en C#

Cuando se llama a un método sobrecargado, el compilador determina el método específico a utilizar comparando los argumentos de la llamada del método con los parámetros del método. Se selecciona el método que tenga los parámetros más específicos que coincidan con los argumentos.

Por ejemplo, consideremos una clase Calculadora que puede realizar sumas de dos números de distintos tipos (enteros y decimales). Podemos sobrecargar el método Sumar para que pueda manejar estos diferentes tipos de parámetros:

public class Calculadora
{
    public int Sumar(int a, int b)
    {
        return a + b;
    }

    public float Sumar(float a, float b)
    {
        return a + b;
    }
}

Ahora sse puede llamar al método Sumar con enteros o números flotantes:

Calculadora calculadora = new Calculadora(); // Instanciar clase

int sumaEnteros = calculadora.Sumar(2, 3); // 5
float sumaFlotantes = calculadora.Sumar(2.5f, 3.5f); // 6.0f

Aunque los dos métodos Sumar tienen el mismo nombre, el compilador sabe cuál de ellos debe utilizar en cada llamada basándose en los tipos de los argumentos.

Notas importantes de sobrecarga de funciones

  1. No es posible tener dos métodos con la misma firma y sólo diferente tipo de retorno. El compilador utiliza la firma del método (nombre y lista de parámetros) para distinguir entre los métodos sobrecargados, no el tipo de retorno.

  2. La sobrecarga de funciones mejora la legibilidad del código al permitir el uso de un único nombre de método en lugar de tener que recordar y utilizar diferentes nombres para versiones de la misma acción básica.

  3. Es posible también sobrecargar constructores en C#. Los constructores sobrecargados ofrecen diferentes formas de inicializar un objeto de una clase.

Esto es un resumen general de cómo se utilizan las funciones en C#. Existen muchos más detalles y características que pueden ser útiles en diferentes contextos, como las funciones recursivas, las funciones anónimas, las funciones de delegado, entre otras. Es importante recordar que el uso adecuado de las funciones puede hacer que un programa sea más legible, mantenible y eficiente.

Certifícate en CSharp con CertiDevs PLUS

Ejercicios de esta lección Funciones

Evalúa tus conocimientos de esta lección Funciones con nuestros retos de programación de tipo Test, Puzzle, Código y Proyecto con VSCode, guiados por IA.

Todas las lecciones de CSharp

Accede a todas las lecciones de CSharp y aprende con ejemplos prácticos de código y ejercicios de programación con IDE web sin instalar nada.

En esta lección

Objetivos de aprendizaje de esta lección

  1. Comprender el concepto de funciones o métodos en C# y su importancia en la programación.
  2. Aprender cómo declarar funciones, incluyendo el tipo de retorno, nombre y parámetros.
  3. Entender cómo llamar a funciones desde otras partes del programa.
  4. Conocer la sobrecarga de funciones, permitiendo tener varios métodos con el mismo nombre pero con diferentes listas de parámetros.
  5. Familiarizarse con los parámetros opcionales y el uso del modificador params para aceptar un número variable de parámetros en una función.