Во-первых, я прочитал список публикаций на эту тему, и я не чувствую, что я понял свойства из-за того, что я понял о инкапсуляции и модификаторах полей (private, public..ect).
Одним из основных аспектов C #, который я изучил, является важность защиты данных в вашем коде с помощью инкапсуляции.Я «думал», что понял, что это из-за способности использовать модификаторы (частные, публичные, внутренние, защищенные).Однако, узнав о свойствах, я в некотором роде разрываюсь с пониманием не только использования свойств, но и общей важности / способности защиты данных (что я понимаю как инкапсуляция) в C #.
Если быть более точным, все, что я прочитал, когда получил свойства в C #, это то, что вы должны стараться использовать их вместо полей, когда можете, из-за:
1) они позволяют вам изменять тип данных, когда вы не можете получить прямой доступ к полю напрямую.
2) они добавляют уровень защиты доступа к данным
Однако из того, что я «подумал», я узнал об использовании модификаторов поля, # 2, мне показалось, что свойства просто генерировали дополнительный код, если у вас не было какой-либо причины для изменения типа (# 1) -потому что вы (более или менее) создаете скрытые методы для доступа к полям, а не напрямую.
Затем можно добавить в свойства целые модификаторы, что еще больше усложняет мое понимание необходимости свойств для доступа к данным.
Я прочитал несколько глав от разных авторов по«Свойства», и ни один из них действительно не объяснил хорошего понимания свойств по сравнению с полями и инкапсуляцией (и хороших методов программирования).
Может кто-нибудь объяснить:
1) , почему я хотел бы использовать свойства вместо полей (особенно когда оно появляется, я просто добавляю дополнительный код
2) любые советы по распознаванию использования свойств ине рассматривает их как простые методы (за исключением get; устанавливает очевидность) при трассировке кода других людей?
3) Какие-либо общие правила, когда дело доходит до хороших методов программированияв связи с тем, когда использовать что?
Спасибо и извините за длинный пост - я не хотел просто задавать вопрос, который был задан 100х, не объясняя, почему я спрашиваю это снова.