我需要做的是,当我创建子类的对象时,我在其构造函数中传递基类对象,该构造函数将设置子对象的基类变量.
码:
public class BaseClass{ public int BaseInteger; public double BaseDouble; public bool BaseBool;}public class ChildClass : BaseClass{ public ChildClass(BaseClass baseClass) { this.base = baseClass; // I am trying to do this. } public int ChildInteger; public string ChildString;}
那么我在这里尝试做什么是可能的.怎么样?当我尝试这段代码时,我遇到了这个错误.
Use of keyword 'base' is not valID in this context解决方法 你必须意识到ChildClass不包含BaseClass,而是继承它.
这就是为什么你可以使用this关键字(例如this.BaseInteger)访问基类中定义的数据和方法.
这就是为什么你不能’设置’你的ChildClass的BaseClass,它不包含一个.
然而,有一些有用的模式可以实现您正在尝试的功能,例如:
public class BaseClass{ protected BaseClass() {} protected BaseClass(BaseClass initData) { this.BaseInteger = initData.BaseInteger; this.BaseDouble = initData.BaseDouble; this.BaseBool = initData.BaseBool; } public int BaseInteger; public double BaseDouble; public bool BaseBool;}public class ChildClass : BaseClass{ public ChildClass() {} public ChildClass(BaseClass baseClass) : base(baseClass) { } public int ChildInteger; public string ChildString;}
感谢@svick的建议.
总结以上是内存溢出为你收集整理的c# – 分配子对象的基础对象全部内容,希望文章能够帮你解决c# – 分配子对象的基础对象所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)