Дело в том, что это плохая инкапсуляция, чтобы показывать закрытых пользователей пользователям вашего класса. Используя свойство, вы можете предоставить информацию таким способом, который позволит вам изменить внутреннюю реализацию или хранилище этого значения без изменения интерфейса.
например. Если вы решили сохранить целое число как байт для внутренней экономии памяти, тогда весь вызывающий код придется перекомпилировать. Это неудобно, даже если вы владеете всем исходным кодом, но крайне неудобно, если ваш код использует библиотеку, которую использует кто-то другой.
Другим распространенным примером является то, что вы можете позже вызвать событие, если значение будет изменено.
Другими причинами является то, что некоторые клиенты могут искать свойства через отражение, но не будут искать поля-члены - например, редактор форм и таблицы свойств делают это.
Кроме того, вы можете сделать свойства виртуальными, чего нельзя сделать с полями.
Или, если взглянуть на это с другой точки зрения, по каким причинам вы можете думать о том, чтобы не использовать свойства.