如何在 C# 中扩展返回泛型值的泛型类
本文关键字:泛型 泛型类 返回 扩展 | 更新日期: 2023-09-27 18:35:45
我在使用简单的克隆方法扩展通用堆栈类时遇到问题。这是我的方法:
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)
根据评论:将public static class StackMixin<T>
更改为public static class StackMixin