Всегда лучше иметь частные поля. Вы должны использовать стандартные правила кодирования, которые делают код непротиворечивым.
Вы можете полностью исключить использование приватных полей, используя автоматически реализованные свойства.
Public int MyProperty {get; set;}
Вы также можете иметь закрытый набор для свойств, чтобы их нельзя было устанавливать вне области действия класса, что походит на создание свойства только для чтения
Public int MyProperty {get; private set;}