私はそれがあるタイプであるかどうかを確認できるメソッドに型を渡そうとしています。しかし、以下のコードはコンパイルされず、私は何が間違っているのだろうかと思っています。コンパイルエラーです。型または名前空間の名前 'dataType'が見つかりませんでした。メソッドが渡されたときに型が使用される方法は?
public static List<object> findType(Type dataType)
{
List<object> items = new List<object>();
foreach (KeyValuePair<int, object> entry in DataSource.ItemPairs)
{
if (entry.Value != null && entry.Value is dataType)
{
items.Add(entry.Value);
}
}
return items;
}
これは 'is'と同じではありません。互換性ではなく、型の等価性のみをチェックします。 –
「is」は「再帰的に」動作することを覚えておいてください。私は、wheter固有の派生クラスが基本型であることを確認すると、それが真(インターフェイスを含む)を返すことを意味します。あなたの場合の単純なコンパイルは、そのようには機能しません。 –
今はもっと良いと思っています。 –