1

我得到了错误

“找不到类型或命名空间名称‘passedType’(您是否缺少 using 指令或程序集引用?)”

关于函数内部对passedType的两个引用。为什么它不能识别“passedType”变量?

public bool ObjectIsInHighlightedList(object thing, Type passedType)
{
  foreach (object obj in _highlightedList)
  {
     if (obj is passedType && thing == (passedType)obj)
        return true;
  }
} 
4

1 回答 1

1

尝试使用IsAssignableFrom方法。

public bool ObjectIsInHighlightedList(object thing, Type passedType)
{
  foreach (object obj in _highlightedList)
  {
     if (passedType.IsAssignableFrom(obj.GetType()) && (object)thing == obj)
        return true;
  }
}

然而,这对于泛型方法来说实际上是一个很好的场景:

public bool ObjectIsInHighlightedList<T>(object thing)
{
  foreach (object obj in _highlightedList)
  {
     if (obj is T && thing == (T)obj)
        return true;
  }
}
于 2012-06-29T04:06:46.130 回答