【发布时间】:2021-11-14 06:34:56
【问题描述】:
The documentation 代表List<T> 状态:
如果一个值类型用于类型
T,编译器会专门为该值类型生成List<T>类的实现。这意味着List<T>对象的列表元素不必在可以使用元素之前被装箱......
在 cmets 中提出了一个问题,即此处的“编译器”到底指的是什么。这与问题无关,即“编译器”(无论这可能意味着什么)还有什么作用。
其他任何集合类型都是这样吗?如果只有List<T>,即使像Queue<T> 这样的其他集合更好地表达了您的意图,始终将List<T> 用于值类型是否是一种好习惯?
【问题讨论】:
-
所有采用泛型类型参数的集合类型都是如此
-
@EhsanSajjad 这是否记录在任何地方?或者其他收藏是否在内部使用
List<T>? -
我建议您始终使用最适合您需要的类型,而不用担心它们是否是值类型。所以如果你需要一个队列,使用
Queue<T> -
正如@EhsanSajjad 所提到的,这并不特定于
List<T>- this is true for any generic type definition with a type parameter that accepts value types -
@MarcGravell 同样,这些文档中“编译器”的确切含义与我的问题完全无关。
标签: c# collections