我看过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但是我没有得到它,或者他们不是我想要的。如何从基类的实例初始化派生类的实例?
我有一个类,从另一个导出的,也实现特定接口:
public class DerivedClass : BaseClass, IDerivedClass
BaseClass
实现IBaseClass
和IDerivedClass
继承IBaseClass
。
有时,我希望能够初始化派生类,当我已经有一个基类的实例。我可以创建一个构造函数,将基础实例中的每个属性简单复制到派生类实例的属性中,但是还有其他方法吗?一些沿线:
BaseClass bc = new BaseClass();
DerivedClass dc = new DerivedClass() : bc;
这是可行的吗?如果不是,为什么不呢?我准备接受这可能是不可能的,但如果有的话,如果有人能解释为什么,我会非常感兴趣。
这是行不通的,因为你不能设置派生类的属性,当你不知道'T'。换句话说,在这个方法中,你只能设置基类的属性。 – Maarten
据我所知,这正是詹姆斯德克尔试图实现的目标。 – wertzui