Ограничить количество общих параметров в .NET?

Есть ли ограничение на количество общих параметров, которые вы можете иметь для типа в .NET? Либо жесткий предел (например, 32), либо мягкий предел (где он как-то сильно влияет на производительность и т.д.)

Я имею в виду:

class Foo<T0, T2, T3, T4, etc.> {
}

Ответы

Ответ 1

Из Спецификация языка С# 2.0

8.16.3 Параметры нескольких типовОбъявления общего типа могут иметь любое количество параметров типа.

Ответ 2

Анонимные типы в С# 3.0 на самом деле являются общими, по причинам, о которых я должен, вероятно, рассказывать в какой-то момент. Когда мы разрабатывали анонимные типы, мы поняли, что, конечно, люди могут создавать анонимные типы с потенциально сотнями полей, поэтому мы провели много испытаний производительности дженериков с большим количеством параметров типа.

Мы не обнаружили никаких заметных проблем.

Однако, что мы считаем приемлемым, вы не можете. Мой совет: попробуй и посмотри. Запишите некоторые контрольные показатели, выполните их, а затем вы будете рассуждать из эмпирических данных, а не рассуждать о догадках случайных людей в Интернете, которые не знают, что ваши сценарии пользователя или какие факторы эффективности важны для вас.