Por exemplo, o System.IO.Path.Combinemétodo no .NET possui as seguintes sobrecargas:
Combine(params String[])
Combine(String, String)
Combine(String, String, String)
Combine(String, String, String, String)
Qual é o sentido dos três últimos?
O primeiro abordaria todos, como se você observasse atentamente, ele usa a paramspalavra - chave. O argumento de compatibilidade com versões anteriores cobriria apenas a Combine(String, String)variante, pois era a única versão até o .NET 4.
Combinecom zero ou um segmento de caminho nem faz sentido, mas aparamsversão permite que você faça isso.