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

时间:2014-10-01 08:03:04

标签: c#

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

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

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

1 个答案:

答案 0 :(得分:10)

在标题行中使用Type代替“类”。

然后你可以:

bool InContext(Item item, Type[] accepted)
{
  Type itemType = item.GetType();

  return accepted.Any(x=> x.IsAssignableFrom(itemType));
}