C# 枚举器术语混淆

本文关键字:术语 枚举 | 更新日期: 2023-09-27 18:31:26

在 C# 中,有人告诉我,如果像 List(T) 这样的容器类首先被上行转换为容器接口(如 IEnumerable),然后使用 foreach 进行迭代,那么将创建运行时垃圾。此外,即使完全向下,我也被告知迭代 Collection(T) 也会在堆上创建引用。我知道这是对 GetEnumerator() 的虚拟调用的结果,它可能返回引用或值类型结果。

检查 MSDN 文档中的值类型清楚地将所有枚举列为值类型。如果枚举由枚举器列表组成,那么根据文档,这些枚举器不是值类型的枚举器吗?他们装箱了吗?还是彼此完全无关但名称相似?还是完全别的什么?

我不知道如何统一这两个陈述,我希望有人能更清楚地向我解释。

谢谢。

编辑:问题改写,考虑到评论者对使用"从不"和"不必要"等词的建议

C# 枚举器术语混淆

枚举

器(enum s)与枚举器无关。

有人告诉我要避免...

似乎是一个非常不成熟且不必要的优化。