zoukankan      html  css  js  c++  java
  • C# 未提供必须形参对应的实参

    今天写了个继承,结果老提示这个错误,萌新的基础很不牢固,Mark一下吧

     public TeachManager(string name, string phone, string email) : base(name, phone, email)
    父类有了带参数的构造函数,子类的构造函数可以不和父类的构造函数一样,但是,如果你的父类定义了带参数的构造函数同时没有无参重载的情况下,那么在子类中,你必须对父类的带参数的构造进行赋值,也就是实参!在你这个里面
    class TeachManager:Teach{    
    public TeachManager()  :base("","","")      {          }
    }
    如果父类有无参的构造函数重载 就可以不用传递实参
    class A     {       
    public A() { }       
    public A(string a) { }     
    }      
    class B : A     {        
    public B() { }   
     }   
    //或者
    class A     {      
    }     
    
    class B : A     {        
    public B() { }    
    } 
    都是可以的 
    public TeachManager(string name,string phone,string email) 
      :base(name,phone,email)  //可以理解为base就是调用父类构造函数的简写,便于传递参数
        {
         
        }
    相当于
    public TeachManager(string name,string phone,string email) 
    {
        Teach T=new Teach(name,phone,email)
    }
    只是一个参数的传递,赋值的地方在Teach中
    原因的是子类在实例化时,会调用父类的构造方法。父类有一个默认的构造方法无参构造方法,重写了父类的构造方法会覆盖掉默认的构造方法。调用的是需要参数的构造方法,需要传值给它.使用base关键字
    我的案例
    父类
        public partial class BaseService<Entity, TKey> : IBaseService<Entity, TKey> where Entity : class
        {
            protected readonly IBaseRepository<Entity, TKey> _repository;
    
            public BaseService(IBaseRepository<Entity, TKey> repository)//继承类中用Base()传递参数
            {
                _repository = repository;
            }
    //.......... }

    子类

        public partial class zgdmbService: BaseService<zgdmb, string>, IzgdmbService
        {
            //private readonly IzgdmbRepository _repository;//在父类中定义了
    
            public zgdmbService(IzgdmbRepository repository):base(repository)//base是给父类构造函数传递参数
            {
                //_repository = repository;
            }
    //......
    }

    来自:https://iask.sina.com.cn/b/1SV0KaKBkpip.html
    https://blog.csdn.net/qq_38061677/article/details/81021646
  • 相关阅读:
    PHP的strtotime()函数2038年bug问题
    [转]MySQL常用字符串函数
    [转]MySQL日期与时间戳常用函数
    微信公众号开发的一点自我小结,怕自己过后忘了,总结于此。
    [转]去掉IOS下的input 和textarea的内阴影
    [转]Javascript removeChild()删除节点及删除子节点的方法(同样适用于jq)
    能够还原jQuery1.8的toggle的功能的插件
    xp sp3安装.Net 4.0提示严重错误,0x80070643,解决办法2017版
    thinkphp5访问sql2000数据库
    微信网页授权,错误40163,ios正确,安卓错误?
  • 原文地址:https://www.cnblogs.com/djd66/p/15205005.html
Copyright © 2011-2022 走看看