我想知道有没有一种方法可以设置我的 Base
类,这样我就不需要在调用 Activate()
时覆盖派生类。它使用派生类的泛型类型调用相同的函数。
public abstract class Base
{
public abstract void Activate();
}
public class A : Base
{
public override void Activate()
{
Foo<A>();
}
}
public class B : Base
{
public override void Activate()
{
Foo<B>();
}
}
最佳答案
您可以为类 A
和 B
创建一个中间通用基类:
public abstract class Base
{
public abstract void Activate();
}
public abstract class Base<T> : Base
where T : Base
{
public override void Activate()
{
Foo<T>();
}
}
public class A : Base<A>
{
}
public class B : Base<B>
{
}
关于c# - 在派生类中调用泛型函数的更好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29934439/