限制.NET中的通用参数数量?

thr*_*thr 18 .net c# generics

.NET中的类型可以使用的泛型参数数量是否有限制?硬限制(如32)或软限制(它以某种方式影响性能等)

我指的是:

class Foo<T0, T2, T3, T4, etc.> {
}
Run Code Online (Sandbox Code Playgroud)

Mar*_*ark 24

来自C#2.0语言规范

8.16.3多类型参数 通用类型声明可以包含任意数量的类型参数.


Eri*_*ert 21

C#3.0中的匿名类型实际上是通用的,出于我在某些时候可能会博客的原因.当我们设计匿名类型时,我们意识到当然人们可能会创建具有数百个字段的匿名类型,因此我们对具有大量类型参数的泛型的性能进行了大量测试.

我们没有发现任何明显的问题.

但是,我们认为可以接受,你可能不会.我的建议:试一试,看看.写下一些基准,执行它们,然后你将从经验数据中推理,而不是从互联网上随机人员的猜测推断出来,他们不知道你的用户场景是什么或者哪些性能因素对你很重要.