Нет. В C# отсутствует возможность указания переменного количества типов, но можно просто указать переменное количество аргументов через params сделав их типа object (тогда можно будет любой тип передать) и через рефлексию с ними работать.
P.S. Если посмотреть например на стандартный Func то он тоже сделан чисто на перегрузках (реализовано несколько вариантов этого класса для разного количества аргументов).