【发布时间】:2013-11-13 08:13:36
【问题描述】:
我创建了一个名为MostRecentStack<T> 的类,它是一个仅保留一定数量项目的堆栈,将那些放在底部的项目为新项目腾出空间。我希望有一个变量可以存储对常规(“无限”)堆栈或我的自定义类型之一的引用,具体取决于具体情况,但 C# 没有定义通用“堆栈”接口。通常这不会有问题,但我希望System.Collections.Generic.Stack<T> 也能实现该接口。
只要一个类提供了所需的成员,有没有办法在接口定义中告诉编译器考虑一个类来实现接口?我希望能够做到这一点,而不必使用 as 或其他类型转换方法。
【问题讨论】:
-
要实现一个接口,需要将一个类声明为实现该接口,所以你想要的不太可能。您可以从 System.Collections.Generic.Stack
派生一个类,它除了实现新接口之外没有任何新功能。然后,您可以在代码中使用该派生类代替 System.Collections.Generic.Stack 。 -
好主意!您应该将其作为答案提交,如果没有人有更好的想法,我可以将其标记为已接受。谢谢!
-
很高兴它有帮助,我已将其添加为答案。
标签: c# class oop interface polymorphism