c# – 分配子对象的基础对象
发布时间:2020-12-16 01:55:30 所属栏目:百科 来源:网络整理
导读:我有一个基类和一个子类.基类包含一些变量,子包含一些变量. 我需要做的是,当我创建子类的对象时,我在其构造函数中传递基类对象,该构造函数将设置子对象的基类变量. 码: public class BaseClass{ public int BaseInteger; public double BaseDouble; public
我有一个基类和一个子类.基类包含一些变量,子包含一些变量.
我需要做的是,当我创建子类的对象时,我在其构造函数中传递基类对象,该构造函数将设置子对象的基类变量. 码: 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的建议. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |