2

我在使用简单的 Clone 方法扩展通用 Stack 类时遇到问题。这是我的方法:

class Program
{
    static void Main(string[] args)
    {
        Stack<string> myStack = new Stack<string>();
        myStack.Push("hello!");

        var stackClone = myStack.Clone();

    }
}

public static class StackMixin<T>
{
    public static Stack<T> Clone<T>(this Stack<T> stackToClone)
    {
        if (stackToClone == null)
            throw new ArgumentNullException();

        IEnumerable<T> reversedStackToClone = stackToClone.Reverse<T>();
        Stack<T> cloneStack = new Stack<T>(reversedStackToClone);
        return cloneStack;
    }
}

我收到以下错误:

System.Collections.Generic.Stack<string>不包含“ ”的定义,并且找不到接受第一个类型参数的Clone扩展方法“ ” (您是否缺少 using 指令或程序集引用?)CloneSystem.Collections.Generic.Stack<string>

我一直在谷歌搜索解决方案或解释,但最终没有运气。(这就是我所尝试的:尝试过 https://www.google.pl/#q=generic+extension+method+c%23

4

1 回答 1

1

根据评论:更改public static class StackMixin<T>public static class StackMixin

于 2013-10-18T00:17:25.773 回答