title: Cannot implicitly convert type 'customtype' to 'othercustomtype'
body: <p>I am new to C#. I have a Persons class and a User class which inherits from the Persons class. I my console I input a users in an array. Then I can add a note to a user that is in the users array by only entering the users id. In my Persons class i have this function that has to search if this user is in the users array.</p>
  
  <pre><code>public static Persons FindPerson(Persons[] persons, int noteid)
  {
      foreach (Persons person in persons)
          if (person.ID == noteid) return person;
      return null;
  }
  </code></pre>
  
  <p>In my User class I have a function that loops the whole input of the id until it gets an id that is in the users array.</p>
  
  <pre><code>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.");                
      }
  }
  </code></pre>
  
  <p>Everything works fine except that I now get this error message on the "return person" in the if statement.</p>
  
  <blockquote>
    <p>Cannot implicitly convert type 'UserCustomerNotes.Persons' to 'UserCustomerNotes.User'. An explicit conversion exists (are you missing a cast?)    </p>
  </blockquote>
  
  <p>Can anyone please help? Thanks in advance.</p>