Нет, это не будет в штучной упаковке.Во время выполнения резервный массив для List<int>
будет действительно int[]
.Обратите внимание, что это относится не только к подлинным типам примитивов - List<T>
не будет содержать значения любого типа (при условии, что оно объявлено как List<Guid>
и т. Д., А не List<object>
).
По сути, дженерики в .NET хранят гораздо больше своей информации, чем в Java - CLR изначально понимает дженерики и работает с ними соответствующим образом, а не в Java, где JVM практически не знает их.
Например, если вы напишите:
object list = new List<string>();
Type type = list.GetType();
Тогда type
будет равен typeof(List<string>)
- что тогда будет отличаться (скажем) List<Guid>
и т. Д.