1

エラーが発生します

「タイプまたは名前空間の名前'passedType'が見つかりませんでした(usingディレクティブまたはアセンブリ参照がありませんか?)」

関数内のpassedTypeへの2つの参照について。「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 に答える