【发布时间】:2011-06-10 17:12:15
【问题描述】:
abstract class A<T> where T:A<T>
{
public event Action<T> Event1;
}
class B : A<B>
{
//has a field called Action<B> Event1;
}
有没有更优雅的方法来做到这一点?我希望基类中的东西(事件等)能够使用子类的类型。
【问题讨论】:
-
小心,一个基类不应该直接知道它的子类,它会变成一个讨厌的技术债务。在这种情况下,因为它是一个通用的,它并不算太糟糕,但只是一般。
-
你不是说
where T:A<T>吗? Eric Lippert 已经写过这个:blogs.msdn.com/b/ericlippert/archive/2011/02/03/…