gpt4 book ai didi

c# - 注册字段子类的事件 c#

转载 作者:行者123 更新时间:2023-11-30 20:20:42 25 4
gpt4 key购买 nike

让我像这样模拟我的问题。

我有一个层次结构,其中 DogCatBird 是抽象类 Animal 的子类。 Bird 有一个新事件 BirdEvent,它不在(也不应该在)Animal 中。

我有一个 MyObject 类,它有一个类型为 Animal 的字段(以利用多态性)。假设 MyObject 的一些实例将用 Bird 填充它们的 Animal 字段,而其他实例用 Cat。如果 Animal 字段包含 Bird 的实例,我想注册它的 BirdEvent。但由于该字段是 Animal 类型,它显然不能有 BirdEvent

MyObject myObject= new Myobject();

if (myObject.Animal is Bird)
{
myObject.Animal.BirdEvent += reactToBirdEvent;
}

有什么方法可以联系到 BirdEvent 吗?或者很有可能,我的设计是否存在我未发现的缺陷?

最佳答案

您可以 cast它到 Bird:

MyObject myObject= new Myobject();

if (myObject.Animal is Bird)
{
((Bird)myObject.Animal).BirdEvent += reactToBirdEvent;
}

关于c# - 注册字段子类的事件 c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35699853/

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