Наприклад, 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версія дозволяє це зробити.