Итак, у меня есть список BaseClass, и я заполнил его несколькими экземплярами производных классов (только один из каждого производного класса), так что у нас есть что-то вроде:Найти производный класс в списке его базового класса
List<BaseClass> myList = new List<BaseClass>();
myList.Add(new DerivedClassA());
myList.Add(new DerivedClassB());
myList.Add(new DerivedClassC());
Теперь я хочу, чтобы иметь возможность искать MyList с чем-то вроде этого:
public void FindClass (BaseClass class){ //class is a derived class
//find index or object of type class
//so that if class is a DerivedClassB
//we return the first DerivedClassB in myList
}
возможно ли это? Я знаю, что могу дать каждому DerivedClass свойство name и найти его по имени, но я не хочу этого делать.
Вы можете использовать 'is'' keyword', чтобы определить, имеет ли он производный тип. – Ian
Вы действительно хотите, чтобы «FindClass» требовал передать * экземпляр * в качестве параметра? Будет ли «Тип» не более подходящим здесь? (Или как простой параметр, либо как общий тип параметра) –
Вы на 100% правы, и вместо этого я должен использовать тип как параметр. Слишком долго. Я буду использовать это решение, но так как кто-то дал мне ответ на вопрос, как это сделать с экземпляром, я отмечу это как правильно, если кто-то сможет использовать это решение. – Stoddard