gpt4 book ai didi

c# - 如何将 Animal 实例变成 Dog 实例?

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

假设我有以下类(class):

class Animal
{
public long Id { get; set; }
public string Name { get; set; }
}

class Dog:Animal
{
public void sniffBum()
{
Console.WriteLine("sniff sniff sniff");
}
}

如果我有一个 Animal 的实例,我如何将它转换为 Dog?像这样:

Animal a = new Animal();
if ( some logic to determine that this animal is a dog )
{
Dog d = (Dog)a;
d.sniffBum();
}

基本上我不能使用接口(interface)。我的数据库中总会有一个 Animal 对象。 Dog 没有比 Animal 多的参数,只有新方法。

我可以只创建一个新的 Dog 对象,然后传递值(或者有一个采用 Animal 类型的构造函数),但这看起来很困惑。

最佳答案

首先将动物创建为狗,然后检查它是否

Animal a = new Dog();
if (a is Dog )
{
Dog d = (Dog)a;
d.sniffBum();
}

关于c# - 如何将 Animal 实例变成 Dog 实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16215143/

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