gpt4 book ai didi

c# - 列表中的 foreach [C#]

转载 作者:太空狗 更新时间:2023-10-29 20:43:50 28 4
gpt4 key购买 nike

MonoBehavior[] list; // This is from Unity3d but think of it as Object, 
// all classes inherit from it.

列表中充满了很多东西,有些是 Alpha,来自 Alpha 类,还有一些来自其他类。

foreach(Alpha a in list) // Alpha is a script. 
a.doSomething();

我假设我的 foreach 会这样工作:在列表中找到的 Foreach Alpha 脚本做某事,忽略所有其他组件。

我认为这是一个转换问题。请帮助我更好地理解转换/多态性。

我在执行过程中遇到这个错误:无法从源类型转换为目标类型

最佳答案

您在多态性方面的做法是错误的:虽然 Alpha 是派生类型,但您列表中类型 MonoBehavior 中的所有其他对象并非都是派生类型。因此,有些会导致 foreach 正在执行的隐式类型转换失败。如果您的环境中可用,您可以使用“OfType()”扩展:

foreach(Alpha a in list.OfType<Alpha>())

关于c# - 列表中的 foreach [C#],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15431111/

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