我有一个基类和一个子类.基类包含一些变量,子包含一些变量.
我需要做的是,当我创建子类的对象时,我在其构造函数中传递基类对象,该构造函数将设置子对象的基类变量.
码:
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;
}
Run Code Online (Sandbox Code Playgroud)
那么我在这里尝试做什么是可能的.怎么样?当我尝试这段代码时,我遇到了这个错误.
Use of keyword 'base' is not valid in this context
Run Code Online (Sandbox Code Playgroud)
你必须意识到它ChildClass不包含 BaseClass而是从它继承.
这就是为什么您可以使用this关键字(this.BaseInteger例如)访问基类中定义的数据和方法.
这也是为什么你不能'设置' BaseClass你的ChildClass,它不包含一个.
然而,有一些有用的模式可以实现您正在尝试的功能,例如:
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;
}
Run Code Online (Sandbox Code Playgroud)
感谢@svick的建议.
| 归档时间: |
|
| 查看次数: |
845 次 |
| 最近记录: |