我想在基类(和接口中(定义一个接受派生类作为其参数的方法。
即
abstract class Base : IBase
{
public void CloneMeToProvidedEntity(??? destination) {};
}
public class Derived : Base
{
public override void CloneMeToProvidedEntity(Derived destination)
{
blah blah ....
}
}
如果有人能告诉我界面会是什么样子以及如何做到这一点,我将永远感激不尽......或者如果可能的话
满怀期待
矛
您可能正在寻找:
interface IBase<T>
{
void CloneMeToProvidedEntity(T destination);
}
public abstract class Base<T> : IBase<T>
{
public virtual void CloneMeToProvidedEntity(T destination) { }
}
public class Derived : Base<Derived>
{
public override void CloneMeToProvidedEntity(Derived destination)
{
}
}
谢谢@Phil
您可以使用泛型类,其中泛型类型必须为 IBase
类型:
public abstract class Base<T> : IBase where T : IBase
{
public virtual void CloneMeToProvidedEntity(T destination) { }
}
public class Derived : Base<Derived>
{
public override void CloneMeToProvidedEntity(Derived destination)
{
// blah blah ....
}
}