2010-03-26 19 views
15

¿Existe un límite en la cantidad de parámetros genéricos que puede tener en un tipo en .NET? De cualquier límite duro (como 32) o un límite blando (en el que de alguna manera afecta el rendimiento a mucho, etc.)¿Límite en la cantidad de parámetros genéricos en .NET?

Lo que me refiero es:

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

Simplemente curioso porque no puedo pensar en un ejemplo ... ¿dónde sería esto un problema? :) –

+0

Supongo que está limitado por la cantidad de memoria que tienes, pero ¿por qué necesitarías tantos tipos pasados ​​a una clase? – adam0101

+0

Al realizar cierres con tipado estático (e inferido de tipo) para un lenguaje dinámico en .NET – thr

Respuesta

20

Desde el C# 2.0 language spec

8.16.3 Parámetros de tipos múltiples Las declaraciones genéricas de tipos pueden tener cualquier cantidad de parámetros de tipo.

+0

Gracias, muy apreciado. – thr

18

Los tipos anónimos en C# 3.0 son en realidad genéricos, por razones que probablemente debería bloguear en algún momento. Cuando diseñamos tipos anónimos, nos dimos cuenta de que, por supuesto, las personas podían crear tipos anónimos con potencialmente cientos de campos, por lo que hicimos muchas pruebas del rendimiento de los genéricos con muchos parámetros de tipo.

No encontramos ningún problema notable.

Sin embargo, lo que consideramos aceptable, es posible que no. Mi consejo: pruébalo y mira. Escriba algunos puntos de referencia, ejecútelos y luego estará razonando a partir de datos empíricos, en lugar de razonar a partir de las suposiciones de personas al azar en Internet que no saben cuáles son sus escenarios de usuario o qué factores de rendimiento son importantes para usted.

Cuestiones relacionadas