Я еще начинающий разработчик, и очень хочу разобраться, зачем нужно использовать резервные поля вместе со свойством, если можно просто использовать автоматическое свойство?
Например, зачем мне делать так:
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;
Заранее благодарю, правда хочется разобраться. На англоязычных форумах не совсем понял объяснения.
[SerializeField] private float _someValue;. В иных случаях для инкапсуляции можно использовать публичное свойство с приватным сетером. – Yaroslav Feb 16 '22 at 15:31{get;set;}, а если вдруг понадобится предобработка, то, соответственно, напишете его. Кстати, чтобы человек, к которому вы обратились, получил уведомление, нужно написать @ и его имя – Максим Фисман Feb 17 '22 at 17:05