我收到了错误
“找不到类型或命名空间名称'passedType'(您是否缺少using指令或程序集引用?)”
对函数内部的passType的两个引用。为什么它不能识别“passedType”变量?
public bool ObjectIsInHighlightedList(object thing, Type passedType)
{
foreach (object obj in _highlightedList)
{
if (obj is passedType && thing == (passedType)obj)
return true;
}
}
答案 0 :(得分: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;
}
}