gpt4 book ai didi

.net - Stack 实现 ICollection,但具有来自 ICollection 的方法

转载 作者:行者123 更新时间:2023-12-04 15:35:49 26 4
gpt4 key购买 nike

我正在尝试基于 Stack<T> 创建自定义集合.当我看 Stack<T> [来自元数据] 在 Visual Studio 中,它显示 Stack<T>实现 ICollection ,这将要求它实现 ICollectionCopyTo(Array array, index)方法,而是显示为具有 ICollection<T>CopyTo(T[] array, index)方法。有人可以解释为什么会这样吗?

我正在尝试创建一个模仿 Stack<T> 的集合相当沉重。当我实现 ICollection就像堆栈一样,它需要我使用 CopyTo(Array array, index)方法,但我真正想要的是使用 CopyTo(T[] array, index)方法,例如 Stack<T>做。有没有办法在不实现 ICollection<T> 的情况下实现这一目标? ?

最佳答案

正如其他人所写,您可以使用显式接口(interface)实现来满足您的非通用接口(interface):

void ICollection.CopyTo(Array array, int arrayIndex)
{
var arrayOfT = array as T[];
if (arrayOfT == null)
throw new InvalidOperationException();
CopyTo(arrayOfT, arrayIndex); // calls your good generic method
}

关于.net - Stack<T> 实现 ICollection,但具有来自 ICollection<T> 的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10589803/

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