Translate

viernes, 21 de marzo de 2025

Número variable de argumentos en C#


En C#, la palabra clave params se usa para permitir que un método acepte un número variable de argumentos del mismo tipo sin necesidad de definir múltiples sobrecargas.  

¿Cómo funciona?  

  • Solo puede haber un parámetro params por método, y debe ser el último parámetro en la lista.  
  • El argumento pasado puede ser una lista de valores separados por comas o un array del tipo especificado.  

Veamos un ejemplo: 


using System;


class Program

{

    static void Main()

    {

        ImprimirNumeros(1, 2, 3, 4, 5);

        ImprimirNumeros(10, 20);

        ImprimirNumeros(); // No pasa nada, la lista puede estar vacía

    }


    static void ImprimirNumeros(params int[] numeros)

    {

        foreach (var num in numeros)

        {

            Console.Write(num + " ");

        }

        Console.WriteLine();

    }

}

La salida va a ser:

1 2 3 4 5  

10 20  


También puedes pasar un array en lugar de valores separados por comas:  


int[] valores = { 100, 200, 300 };

ImprimirNumeros(valores);



Puedes mezclar params con otros parámetros, pero debe estar al final:  


static void Saludar(string mensaje, params string[] nombres)

{

    foreach (var nombre in nombres)

    {

        Console.WriteLine($"{mensaje}, {nombre}!");

    }

}


// Llamadas válidas:

Saludar("Hola", "Juan", "Ana", "Luis");  

Saludar("Bienvenido", "Carlos");  


Y la salida va a ser: 


Hola, Juan!  

Hola, Ana!  

Hola, Luis!  

Bienvenido, Carlos!  


¿Cuándo usar params?  

  • Cuando quieres un método flexible sin definir múltiples sobrecargas.  
  • Para métodos como Console.WriteLine(), que pueden recibir cualquier cantidad de argumentos.  
  • Para situaciones en las que puede haber 0 o más parámetros opcionales sin usar List<T> o IEnumerable<T>.