gpt4 book ai didi

c# - 如何从基类的实例初始化派生类的实例?

转载 作者:太空宇宙 更新时间:2023-11-03 12:52:33 24 4
gpt4 key购买 nike

我看过How can I create an instance of a derived class from an instance of a base class and include private fields?Create an instance of derived class from the base class但要么我不明白,要么它们不是我要找的东西。

我有一个派生自另一个的类,也实现了一个特定的接口(interface):

public class DerivedClass : BaseClass, IDerivedClass

BaseClass 实现了 IBaseClassIDerivedClass 继承了 IBaseClass

有时,当我已经有一个基类的实例时,我希望能够初始化派生类。我可以创建一个构造函数,它只是将每个属性从基实例复制到派生类实例的属性,但是还有另一种方法吗?类似的东西:

BaseClass bc = new BaseClass();
DerivedClass dc = new DerivedClass() : bc;

这可行吗?如果不是,为什么不呢?我准备接受这可能是不可能的,但如果是这样,如果有人能解释原因,我会非常感兴趣。

最佳答案

不,那是不可能的。

您必须创建另一个对象,因为它必须具有第二个对象的特征。你不能只是将一个复制到另一个。如果允许的话,您可能会遇到一个状态无效的对象。

正如您已经提到的,最好的办法是创建一个“复制构造函数”。

关于c# - 如何从基类的实例初始化派生类的实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35031011/

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