代码之家  ›  专栏  ›  技术社区  ›  Pebermynte Lars

如何从调用基构造函数的类继承?

  •  0
  • Pebermynte Lars  · 技术社区  · 6 年前

    所以我继承了这个测试平台,它是一个用C编写的用于Android的Xamarin应用程序,用于specFlow。 我对Xamarin一无所知,对SpecFlow知之甚少,而且我用C语言编写代码已经10年了,所以请放心。 尝试创建从按钮继承的类时,出现以下错误:

    There is no argument given that corresponds to the required formal parameter 'controlIdQuery' of 'Button.Button(Func <AppQuery, AppQuery>)'
    

    我的派生类如下所示:

    public class Buttons : Button
    {
    }
    

    按钮类如下:

    public class Button : ControlBase
    { 
        public Button(Func<AppQuery, AppQuery> controlIdQuery) : base(controlIdQuery) { }
    }
    

    Parrent类的ControlBase of Button如下所示:

    public abstract class ControlBase : AppBase
    {
        public Func<AppQuery, AppQuery> controlIdQuery;
    
        public AppResult[] _appresult;
        public static IApp _appelement;
        public string _methodName;
        public object _argument;
        public bool waiting;
        public static Platform _appPlatform;
    
        public ControlBase(Func<AppQuery, AppQuery> idQuery)
        {
        }
    }
    

    我希望能够创建一个基于按钮的类,就像我可以创建其他控制类一样。我该怎么做才能在这里启用继承?

    1 回复  |  直到 6 年前
        1
  •  6
  •   Jason    6 年前

    类的构造函数需要调用基类构造函数

    public class Buttons : Button
    {
       public Buttons(Func<AppQuery, AppQuery> controlIdQuery) : base(controlIdQuery) {}
    }