在数组中保存类而不是对象

本文关键字:对象 数组 保存 | 更新日期: 2023-09-27 18:25:14

bool InContext(Class[] array, Item item)
{
  for(int i = 0;i<array.length;i++)
   {
     if(item is array[i])
     {
        return true;
     }
   } 
   return false;
}

无论如何,是否可以在数组中存储一堆类,以便我可以判断我的一个项目是否继承自它?

我希望这个用于检查项目是否在上下文中(对于上下文相关菜单(的函数是相当动态的。 因此,手动编写它实际上不是一种选择。

在数组中保存类而不是对象

在标题行中使用类型而不是"类"。

然后,您可以拥有:

bool InContext(Item item, Type[] accepted)
{
  Type itemType = item.GetType();
  return accepted.Any(x=> x.IsAssignableFrom(itemType));
}