为了账号安全,请及时绑定邮箱和手机立即绑定

一个很简单的基类赋值的疑惑

一个很简单的基类赋值的疑惑

跃然一笑 2018-12-06 19:09:36
大家先看一段简单的代码,我想实现的是基类简单赋值,而不是考属性一个个的来赋值。 public class A { public int p1 { get; set; } } public class B : A { public B(A data) { base = data; } } 注意到base=data 这里的时候是错误的,编译也不通过,请问大家这是为什么呢?base的具体含义究竟是什么。请问大家有什么解决的办法没(如果是base.p1 = data.p1就算了,属性太多的时候就繁琐了)。    
查看完整描述

5 回答

?
holdtom

TA贡献1805条经验 获得超10个赞

兄弟 你要改变它什么,既然是子类,已经是完全继承了,你为什么还要给父类赋值呢?不好也不规范

查看完整回答
反对 回复 2019-01-21
?
眼眸繁星

TA贡献1873条经验 获得超9个赞

子类初始化的时候事实上就初始化了父类的值,给父类赋值为了减少代码量
查看完整回答
反对 回复 2019-01-21
?
森栏

TA贡献1810条经验 获得超5个赞

先回答楼主的问题,再评论楼主的做法。

1、注意到base=data 这里的时候是错误的,编译也不通过,请问大家这是为什么呢?base的具体含义究竟是什么?

因为base代表的是基类,data是实例,把实例覆给类就好比B=new B()一样,显然是不行的。

2、请问大家有什么解决的办法没?

就用你说算了的方法。

不知道楼主有没有注意到,public B(A data)中data产生的时候你是要对它进行一次属性赋值的,也就是说对A的属性一个个赋值你是无法避免的。

查看完整回答
反对 回复 2019-01-21
  • 5 回答
  • 0 关注
  • 284 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信