It is not strictly necessary, but it is generally considered good design practice to only use public properties when you need to expose data outside of the class. For use within a class a private field member will suffice, and the property exposes the private field member. Using the different naming conventions within your class allows you to know at a glance that it is the private member variable.
There are scenarios when you might want to consider using a private property as well as a private field within a class, such as when lazy loading cached values.
https://stackoverflow.com/questions/3310186/are-there-any-reasons-to-use-private-properties-in-c