たとえばSystem.IO.Path.Combine、.NET のメソッドには次のオーバーロードがあります。
Combine(params String[])
Combine(String, String)
Combine(String, String, String)
Combine(String, String, String, String)
最後の3つのポイントは何ですか?
最初のものはそれらをすべてカバーしますが、よく見るとparamsキーワードを使用しています。Combine(String, String).NET 4までの唯一のバージョンであったため、下位互換性の議論はバリアントのみを対象としています。
Combine0または1つのパスセグメントで渡すことは意味をなさないparamsことですが、バージョンではこれを行うことができます。