c#语法糖代码——继承中构造函数的问题,this&base比较

继承中构造函数的问题
1 继承时,构造函数不能继承
2 子类的构造函数会默认的调用父类中无参的构造函数

处理方式:
1 在父类中添加无参的构造函数
2 不修改父类,在子类中的构造函数后边添加:base(),显示的去调用父类的构造函数

base()是调用父类中的构造函数
eg:
public Student(string name,int age,double score):base(name,age){this.Score=score;}
执行步骤: 先执行执行父类构造函数
,再执行执行子类构造函数

通过this调用构造函数

作用1: this是调用本类中的构造函数
在当前类的构造函数前添加:this()调用本类中的构造函数

eg
public person(string name,int age,string email,double salary)
{
this.Name=name;
this.Age=age;
this.Email=email;
this.Salary=salary;
}

public person(string name,int age):this(name,age,null,0){}//这样就可以避免重复赋值了

对象与集合初始化器(编译的时候调用了set方法)
Student stu=new Student(){Id=1,Name="coco",Age=99}//更方便给对象赋值
集合初始化器(编译时调用list.add()方法)
List<int>num=new List<int>(){0,1,23,4};
list<student>stus=new list<student>(){new student{Id=1,Name="coco",Age=123},new student{Id=2,Name="kkk",Age=17}};


this&base比较
一般情况下,如果子类继承了父类成员
那么子类中通过this.成员或base.成员访问的一样的
除非父类中的成员子类继承后又重写了

其他:使用即时窗口调试
在即时窗口中输入变量,可以查看当前变量的值
在即时窗口中输入“&”符号可以观察变量的地址(引用类型中,如果两个引用类型变量相同那么指向同一个地址两个引用类型变量相等)

 

转载于:https://www.cnblogs.com/lv-sally/p/4730062.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值