假设我们有一个这样的通用列表:
List<string> list = new List<string>() { "abc", "demo", "stackoverflow" };
当尝试像这样创建堆栈的新实例时,它不会工作。
Stack<string> stack = new Stack<string>() { "abc", "demo", "stackoverflow" };
编译器说 Stack<> 没有 add 方法。所以我使用扩展方法实现了一个添加方法:
public static void Add<T>(this Stack<T> stack, T item)
{
stack.Push(item);
}
但是,编译器仍然给出相同的错误。但为什么?编译器现在不应该找到方法吗?此外,通用堆栈不是实现 IEnumerable<> 和 ICollection<> 吗?为什么堆栈默认不包含 Add 方法?