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

大家先看一段简单的代码,我想实现的是基类简单赋值,而不是考属性一个个的来赋值。

 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就算了,属性太多的时候就繁琐了)。

 

 

跃然一笑
浏览 285回答 5
5回答

holdtom

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

眼眸繁星

子类初始化的时候事实上就初始化了父类的值,给父类赋值为了减少代码量

森栏

先回答楼主的问题,再评论楼主的做法。 1、注意到base=data 这里的时候是错误的,编译也不通过,请问大家这是为什么呢?base的具体含义究竟是什么? 因为base代表的是基类,data是实例,把实例覆给类就好比B=new B()一样,显然是不行的。 2、请问大家有什么解决的办法没? 就用你说算了的方法。 不知道楼主有没有注意到,public B(A data)中data产生的时候你是要对它进行一次属性赋值的,也就是说对A的属性一个个赋值你是无法避免的。
打开App,查看更多内容
随时随地看视频慕课网APP