首页 > 解决方案 > 将动态类型传递给抽象覆盖方法

问题描述

我试图将一个扩展抽象类的实例传递给一个名为的方法ActionTick,但是,我遇到了错误。

这显示了我尝试创建抽象方法的两种不同方式:

  public abstract class Action {
    // Attempt 1
    public abstract bool ActionTick<T>(T action) where T : ActionAttribute;

    // Attempt 2
    public abstract bool ActionTick(dynamic action);
  }

这就是我尝试实现它的方式。MoveTowardsAttribute延伸ActionAttribute.

  public class MoveTowards : Action {
    public override bool ActionTick(MoveTowardsAttribute action) { }
  }

使用动态变量时出现以下错误:

“MoveTowards”未实现继承的抽象成员“Action.ActionTick(dynamic)”“MoveTowards.ActionTick(MoveTowardsAttribute)”:找不到合适的方法来覆盖

使用泛型变量时,我只得到一个错误:

'MoveTowards.ActionTick(MoveTowardsAttribute)':找不到合适的方法来覆盖

标签: c#

解决方案


推荐阅读