No, no se incluirá en la caja. En el momento de la ejecución, la matriz de respaldo para el List<int>
será genuinamente un int[]
. Tenga en cuenta que este no es el único caso con tipos primitivos genuinos: List<T>
no encapsulará valores de ningún tipo de valor (suponiendo que se haya declarado como List<Guid>
, etc. en lugar de List<object>
).
Básicamente, los genéricos en .NET conservan mucha más información de la que tienen en Java: CLR entiende nativamente los genéricos y los trata de forma adecuada, en lugar de Java, donde la JVM los desconoce.
Por ejemplo, si escribe:
object list = new List<string>();
Type type = list.GetType();
Entonces type
será igual a - que es diferente a continuación (por ejemplo) List<Guid>
etc.
Sin embargo, una llamada a, digamos, 'new T [10]' seguirá creando el tipo correcto de matriz, incluso para los tipos de referencia. –