Рассмотрим следующий пример:
public interface IAnimal
{
}
public class Cat: IAnimal
{
}
public class DoStuff
{
private Object catList = new List<Cat>();
public void Go()
{
// I want to do this, but using reflection instead:
if (catList is IEnumerable<IAnimal>)
MessageBox.Show("animal list found");
// now to try and do the above using reflection...
PropertyInfo[] properties = this.GetType().GetProperties();
foreach (PropertyInfo property in properties)
{
//... what do I do here?
// if (*something*)
MessageBox.Show("animal list found");
}
}
}
Можете ли вы завершить оператор if, заменив что-то правильным кодом?
EDIT:
Я заметил, что я должен был использовать свойство вместо поля, чтобы это работало, поэтому оно должно быть:
public Object catList
{
get
{
return new List<Cat>();
}
}