gpt4 book ai didi

c# - 分配子对象的基础对象

转载 作者:行者123 更新时间:2023-11-30 14:12:34 24 4
gpt4 key购买 nike

我有一个基类和一个子类。基类包含一些变量,子类包含一些变量。

我需要做的是,当我创建子类的对象时,我在其构造函数中传递基类对象,这将设置子对象的基类变量。

代码:

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)访问在基类中定义的数据和方法的原因。

这也是为什么你不能“设置”你的 ChildClassBaseClass,它不包含一个。

不过,有一些有用的模式可以实现您想要做的事情,例如:

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# - 分配子对象的基础对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17208097/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com