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>.