Зачем использовать поля, если есть свойства?

Я еще начинающий разработчик, и очень хочу разобраться, зачем нужно использовать резервные поля вместе со свойством, если можно просто использовать автоматическое свойство?

Например, зачем мне делать так:

         private float _someValue;
         public float SomeProperty { get{return _someValue}; set{_someValue = value}; }

если можно использовать автоматическое свойство:

    public float SomeProperty { get; private set }

Я знаю, что под этим свойством спрятано поле, но зачем нагромождать кучу в коде? Инкапсуляцию это не нарушает. Да и к тому же свойства можно делать readonly:

    public float SomeProperty { get; }

И если я вообще не буду объявлять поля, обернется мне это как-нибудь в будущем?

        public static InputManager Instance { get; private set; }
        public EventSystem eventSystem { get; private set; }
        public CinemachineInputProvider CameraProvider { get; private set; }
        public bool TouchedUI { get; private set; } = false;
        public Vector3 ActiveTouchPosition { get; private set; } = Vector3.zero;

Заранее благодарю, правда хочется разобраться. На англоязычных форумах не совсем понял объяснения.


Ответы (0 шт):