Por ejemplo, el System.IO.Path.Combinemétodo en .NET tiene las siguientes sobrecargas:
Combine(params String[])
Combine(String, String)
Combine(String, String, String)
Combine(String, String, String, String)
¿Cuál es el punto de los últimos tres?
El primero los cubriría a todos, como si miraras de cerca, usa la paramspalabra clave. El argumento de la compatibilidad con versiones anteriores solo cubriría la Combine(String, String)variante, ya que era la única versión hasta .NET 4.

Combinecon cero o un segmento de ruta ni siquiera tiene sentido, sin embargo, laparamsversión le permite hacer esto.params string[]es la legibilidad.paramssobrecarga solo para los casos extremos. Un ejemplo es laStringBuilder.AppendFormat()familia de sobrecargas ".Azúcar sintáctica.
Al manipular rutas de archivos, es extremadamente común tener una pequeña cantidad de valores fijos. En estos casos, es más conveniente usarlos directamente en lugar de tener que empaquetarlos en una matriz.
fuente
params.