将 IEnumerator/IEnumerable 实施到自定义队列 class 与使用队列

Implement IEnumerator/IEnumerable into a custom Queue class vs. using a Queue

这里是一位 OOP 初学者。 我只需要做一个练习,我必须在 C# 中创建一个自定义 class,在家庭作业 TODO 中,需要实现 IENumerable 和 IENumerator 接口,并创建一个自定义队列 class 类型对象。

虽然我没有问题解决问题,但我仍然不明白它的用法。与其编写这么多代码来实现自定义队列,不如简单地使用 C# 框架中已经存在的“队列”?这有什么performance/optimisation优势吗?

那么,使用 MyCustomObjectQueue 而不是使用 Queue<'MyCustomObject'> 有什么好处吗?

如评论中所述,这是一个让您熟悉概念的练习。在现实世界中,您几乎总是会使用现有的队列实现。

但是这个练习不是没有意义的。了解如何实现 IEnumerable 非常有价值。 IEnumerator 有点不那么重要,因为您可以使用 iterator block 让编译器为您完成。

框架中的集合是为通用用途而制作的,如果您有一些特殊的使用模式,有时制作您自己的变体会很有用,但这种情况很少见。

根据我的经验,实现集合的最常见情况是包装现有集合以添加一些额外的功能,或者实现未提供的集合,如环形缓冲区或堆。