Не удается неявно преобразовать тип 'customtype' в 'othercustomtype'

Я новичок в C #. У меня есть класс Persons и класс User, который наследуется от класса Persons. Я мою консоль я вводить пользователей в массиве. Затем я могу добавить заметку пользователю, который находится в массиве пользователей, только введя идентификатор пользователя. В моем классе Persons у меня есть эта функция, которая должна искать, если этот пользователь находится в массиве пользователей.

public static Persons FindPerson(Persons[] persons, int noteid)
{
    foreach (Persons person in persons)
        if (person.ID == noteid) return person;
    return null;
}

В моем классе User у меня есть функция, которая зацикливает весь ввод идентификатора, пока не получит идентификатор, который находится в массиве пользователей.

public static User SelectUser(User[] users)
{
    while (true)
    {
        Console.Write("Please enter the User id: ");
        string input = Console.ReadLine();
        int id;
        if (int.TryParse(input, out id))
        {
            Persons person = Persons.FindPerson(users, id);
            if (person != null) return person; // fail on "return person"                   
        }
        Console.WriteLine("The User does not exist. Please try again.");                
    }
}

Все работает нормально, за исключением того, что теперь я получаю это сообщение об ошибке «return person» в операторе if

Не удается неявно преобразовать тип «UserCustomerNotes.Persons» в «UserCustomerNotes.User». Существует явное преобразование (вам не хватает приведения?)

Может кто-нибудь, пожалуйста, помогите? Заранее спасибо.

Ответы на вопрос(5)

Ваш ответ на вопрос