gpt4 book ai didi

c# - 将子对象转换为父类型以进行序列化

转载 作者:IT王子 更新时间:2023-10-29 04:42:52 25 4
gpt4 key购买 nike

我需要能够将子对象的实例转换为其父对象的实例。

public class Parent 
{
public string name{ get; set; }
}

public class Child : Parent { }

var myClass = new Child();

(Parent)myClass;

上面的强制转换似乎不起作用,对象在序列化时仍然具有子类型。

还有其他的转换方式吗?

我只使用子类进行验证——出于序列化的原因,我需要子类只有父类的类型。

最佳答案

您没有将 Actor 分配给任何东西。

var myClass = new Child();
Parent p = (Parent)myClass;

编辑 - 我认为您误解了转换的工作原理。假设 Parent 有一个 virtual 方法,DoStuff()Child 中被覆盖。即使您将 myClass 转换为 Parent,它也会运行 ChildDoStuff 方法。无论如何,那个 Child 是一个 Child,并且永远是一个 Child,即使你转换它也是如此。

如果您试图将它传递给接受 Parent 对象的方法,则不必强制转换它。它已经是一个 Parent,因为它是一个 Child

我想我们漏掉了什么。你想完成什么?什么不起作用?

关于c# - 将子对象转换为父类型以进行序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9082011/

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