我在使用简单的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
”的定义,并且没有任何扩展方法“Clone
”接受System.Collections.Generic.Stack<string>
类型的第一个参数 可以找到(你错过了使用指令或程序集 引用?)
我一直在谷歌搜索解决方案或表达,但最终没有运气。 (这就是我所做的:尝试过 https://www.google.pl/#q=generic+extension+method+c%23)
答案 0 :(得分:1)
根据评论:将public static class StackMixin<T>
更改为public static class StackMixin