Sto provando a passare un tipo a un metodo in cui posso verificare se è "un determinato tipo". Tuttavia il codice che ho qui sotto non viene compilato e mi sto chiedendo cosa non va. L'errore di compilazione è: non è stato possibile trovare il tipo o il nome dello spazio dei nomi 'dataType'.Come usare 'is' quando il tipo passa attraverso il metodo?
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;
}
Questa non è la stessa cosa di 'is'. Controlla solo l'uguaglianza di tipo, non la compatibilità. –
Ricorda, che 'is' funziona" in modo ricorsivo ". Intendo quando controlli che la classe derivata specifica sia di tipo base, restituisce true (comprese le interfacce). Il semplice comparsion nel tuo caso non funziona in questo modo. –
Giusto. Spero sia meglio ora. –