Na przykład System.IO.Path.Combine
metoda w .NET ma następujące przeciążenia:
Combine(params String[])
Combine(String, String)
Combine(String, String, String)
Combine(String, String, String, String)
Jaki jest sens ostatnich trzech?
Pierwszy obejmowałby je wszystkie, ponieważ jeśli przyjrzysz się uważnie, użyje params
słowa kluczowego. Argument zgodności wstecznej obejmowałby tylko Combine(String, String)
wariant, ponieważ była to jedyna wersja do .NET 4.
Combine
z zerowym lub jednym segmentem ścieżki nawet nie ma sensu, aleparams
wersja na to pozwala.params string[]
jest czytelność.params
przeciążenia tylko dla przypadków skrajnych. Przykładem jestStringBuilder.AppendFormat()
rodzina przeciążeń. ”Cukier syntaktyczny.
Podczas manipulowania ścieżkami plików niezwykle często występuje niewielka liczba stałych wartości. W takich przypadkach wygodniej jest używać ich bezpośrednio, niż trzeba je pakować do tablicy.
źródło
params
.