gpt4 book ai didi

.net - 为什么 .NET Framework 中没有 IQueue 或 IStack 接口(interface)?

转载 作者:行者123 更新时间:2023-12-02 03:54:53 32 4
gpt4 key购买 nike

我想编写一个在类似队列的接口(interface)上运行的对象。我去寻找IQueue<T> ,却出人意料地空手而归。

有以下与集合相关的接口(interface):

  • ICollection<T>
  • IList<T>
  • IDictionary<TKey,TValue>
  • ISet<T>

是什么让这些类型的集合获得了定义良好的接口(interface)?为什么堆栈和队列不需要接口(interface)?

最佳答案

嗯,因为从这些接口(interface)到实现它们的类会有一对一的映射(最新的ConcurrentQueue除外)。但其他提到的接口(interface)有很多实现它们的类。

稍微扩展一下。我们无法得知BCL团队的真正动机。但我有一种感觉,当他们创建 Queue 和 Stack 时,这些类看起来很微不足道,因此他们决定不将它们抽象为接口(interface)。原因很明显:类看起来如此简单但同时又完整,因此没有理由在 BCL 中创建它们的不同实现。然后是 ConcurrentQueue ,之前的语句变得有点不正确。

正如它所指出的,QueueConcurrentQueue 没有太多相似之处,无法使它们实现单一接口(interface)。

关于.net - 为什么 .NET Framework 中没有 IQueue<T> 或 IStack<T> 接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4367893/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com