Не могу понять, как выполнять поиск не по базовому классу, а классу наследнику.
Пример:
public class GameObject //базовый класс
{
public int m_perem;
public GameObject(int _perem)
{_perem= m_perem;}
public class Mouse : GameObject // класс наследник
{
public int m_conId;
public Mouse( int _perem, int _conId): base (_perem)
{m_conId = _conId;} }
Теперь тело с листом:
public class Main
{
public static void Main()
{
var m_gameObjectList = new List<GameObject>(); //создаю типизированный лист с объектами базового класса
m_gameobjlist.Add(new Mouse(_perem, m_conId));//добавляю новый объект-наследник
m_gameobjlist.Find((GameObject x) => x._perem.Equals(что-то тут) );// так - поиск работает
m_gameobjlist.Find((Mouse x) => x._perem.Equals(что-то тут) );// а вот так уже ошибка
//невозможно преобразовать лямбда выражение в тип делегата "Predicate<GameObject>", так как типы параметров не совпадают с типами параметров делегата
}
}
Как сделать так, чтобы программа поняла, что мне нужно искать по объекту класса Mouse и сравнила предикатор GameObject с Mouse?