Например, System.IO.Path.Combine
метод в .NET имеет следующие перегрузки:
Combine(params String[])
Combine(String, String)
Combine(String, String, String)
Combine(String, String, String, String)
Какой смысл последних трех?
Первый будет охватывать их все, как будто вы смотрите внимательно, он использует params
ключевое слово. Аргумент обратной совместимости будет охватывать только Combine(String, String)
вариант, так как это была единственная версия до .NET 4.
Combine
с нулевым или одним сегментом пути даже не имеет смысла, ноparams
версия позволяет вам это делать.