gpt4 book ai didi

c# - 将基类转换为派生类

转载 作者:太空狗 更新时间:2023-10-29 21:13:06 26 4
gpt4 key购买 nike

我想知道为什么这会适本地填充派生类:

BaseClass bc = MethodThatReturnsBaseClassObject();
DerivedClass dc = bc as DerivedClass;

但这会创建一个空派生类对象:

DerivedClass dc = MethodThatReturnsBaseClassObject() as DerivedClass;

最佳答案

这是因为 BaseClass 不是 DerivedClass 的实例(但是 DerivedClassBaseClass 的实例) ,因此您不能将基类的实例转换为派生类的实例(好吧,您可以,但如您所见,它将为 null)。

您可以通过向将基类作为参数的派生类添加构造函数来实现(我认为)您想要实现的目标:

public DerivedClass(BaseClass baseClass) {
// Populate common properties, call other derived class constructor, or call base constructor
}

然后:

 DerivedClass dc = new DerivedClass(MethodThatReturnsBaseClassObject());

关于c# - 将基类转换为派生类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19800878/

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