|
Внутри класса лучше использовать что - свойства или поля?
|
|||
---|---|---|---|
#18+
Внутри класса - это в телах конструкторов, методов и т. п. Вот в конструкторе я устанавливаю значения для объекта класса - лучше это делать через поля или через свойства? У меня самого разные соображения на этот счёт. Например, если в свойствах есть валидация, то очевидно, лучше даже в конструкторе использовать свойства, т. к. неправильные значения для инициализации допускать нельзя. Но это для сеттеров. А для геттеров, как я понимаю, всё равно. С другой стороны, свойства были придуманы для того, чтобы ВНЕШНИЕ пользователи объекта не имели прямого доступа к реализации хранения данных в классе - т. е. для ВНУТРЕННИХ пользователей (конструкторов, методов и пр.) они как бы не нужны. Ну а валидацию можно в атрибутах делать, например. Ну и как дополнительный вопрос - валидация в свойствах зло или нет? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2014, 13:19 |
|
Внутри класса лучше использовать что - свойства или поля?
|
|||
---|---|---|---|
#18+
Как вариант: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
Ну или вместо bool возвращать сразу строку, чтобы избежать if-ов ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2014, 13:41 |
|
Внутри класса лучше использовать что - свойства или поля?
|
|||
---|---|---|---|
#18+
user7320свойства были придуманы для того, чтобы ВНЕШНИЕ пользователи объекта не имели прямого доступа к реализации хранения данных в классе - т. е. для ВНУТРЕННИХ пользователей (конструкторов, методов и пр.) они как бы не нужны 1) Из первого вашего утверждения вовсе не следует второе. 2) В конструкторах виртуальные метода нежелательно использовать. А свойства теоретически при set могут их вызывать. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2014, 13:43 |
|
Внутри класса лучше использовать что - свойства или поля?
|
|||
---|---|---|---|
#18+
Arm79, а если приделать атрибуты валидации к полям, а не к свойствам? Тогда можно валидировать и при обращении свойства к полю, и при обращении конструктора к полю. И не надо отдельные методы на каждый чих-пых-валидацию заводить. А? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2014, 15:32 |
|
Внутри класса лучше использовать что - свойства или поля?
|
|||
---|---|---|---|
#18+
1) Не все атрибуты валидации работают с полями (например, Compare) 2) Эти атрибуты достаточно ограничены, иногда нужна сложная логика валидации 3) Лично моя практика - атрибуты валидации ближе к UI, для проверки при вводе данных. А так, безусловно, как хотите, так и делайте ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2014, 15:38 |
|
|
start [/forum/topic.php?fid=20&fpage=130&tid=1403339]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
39ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 147ms |
0 / 0 |