具有抽象参数的 C# 抽象方法

osm*_*smo 0 c# extends abstract

你好,我正在尝试实现一个结构,我需要能够在 C# 的抽象类中创建一个抽象方法,该方法有一个抽象对象作为参数..示例-

public abstract class AbstractMapper
{
     protected abstract AbstractObject doLoad(AbstractObject obj);
}

public abstract class UserMapper
{
     protected override User doLoad(User obj)
     {

     } 
}
Run Code Online (Sandbox Code Playgroud)

在这个例子中,“User”类扩展了“AbstractObject”类......这给我带来了编译错误。有人可以建议我应该如何实现上述目标吗?

Tim*_*lds 5

在 constrained 上使用泛型类型参数AbstractMapper作为 的子类型AbstractObject

public abstract class AbstractMapper<T> where T : AbstractObject
{
     protected abstract T doLoad(T obj);
}

public class UserMapper : AbstractMapper<User>
{
     protected override User doLoad(User obj)
     {
         ...
     } 
}
Run Code Online (Sandbox Code Playgroud)