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

22

.NET中类型的泛型参数数量是否有限制?无论是硬性限制(例如32)还是软性限制(会对性能产生太大的影响等)。

我所指的是:

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

1
只是好奇,因为我想不到一个例子...这会在哪里成为一个问题? :) - Nick Craver
我的猜测是它受限于你拥有的内存大小,但是为什么你需要这么多类型传递到一个类中呢? - adam0101
14
有一个实际的限制,当你的团队其他成员不再和你交流时,你就会知道已经超过了这个限制。 - Hans Passant
7
火热的红迪网友们何时接管了Stack Overflow?曾经是个友善且乐于助人的地方,唉。 - thr
1
.NET 4现在提供了具有多达16个“in”参数的ActionFunc委托,因此我认为这应该足够一段时间了。 - herzmeister
显示剩余5条评论
2个回答

27

来自C# 2.0语言规范

8.16.3 多个类型参数 泛型类型定义可以有任意数量的类型参数。


23

C#3.0中的匿名类型实际上是泛型,这是我应该在某个时候写博客讲解的原因。在设计匿名类型时,我们意识到人们可能会创建具有数百个字段的匿名类型,因此我们进行了许多测试以评估带有许多类型参数的泛型的性能。

我们没有发现任何显着的问题。

然而,我们认为可接受的事情,您可能不这样认为。我的建议:尝试一下并查看结果。编写一些基准测试,执行它们,然后您将从实证数据而非从网络上随机人员的猜测推理,这些人不知道您的用户场景或哪些性能因素对您很重要。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接