在派生中调用泛型函数的更好方法 class
Better way to call a generic function in the derive class
我想知道有没有一种方法可以设置我的 Base
class,这样我在调用 Activate()
时就不需要覆盖派生 class。它使用派生的通用类型调用相同的函数 class.
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>();
}
}
您可以为 classes A
和 B
:
创建中间通用基础 class
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>
{
}
我想知道有没有一种方法可以设置我的 Base
class,这样我在调用 Activate()
时就不需要覆盖派生 class。它使用派生的通用类型调用相同的函数 class.
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>();
}
}
您可以为 classes 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>
{
}