Модераторы: Partizan, gambit

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Properties, полезны ли они? 
:(
    Опции темы
Domestic Cat
Дата 25.11.2005, 18:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 9
Всего: 172



Ну-ну smile Все равно ведь юзается рефлекшн, так ведь? Ну и пишем класс который будет по имени "ХХХ" вызывать методы "GetXXX" - и все будет точно таким же.



--------------------

PM   Вверх
mr.DUDA
Дата 25.11.2005, 18:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



По поводу простоты кода, получаемой с пом. пропертей:

car.Position.Latitude++;

vs.

car.getPosition().setLatitude(car.getPosition().getLatitude() + 1)

smile

Почувствуйте разницу, как грится...
Добавлено @ 18:19
Пример из жизни, с типизированным датасетом:

string customerAddress = dataSet.Orders.Rows[index].CustomerRow.Address;


--------------------
user posted image
PM MAIL WWW   Вверх
arilou
Дата 25.11.2005, 21:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

Репутация: 21
Всего: 61



Цитата(mr @ 25.11.2005, 18:16)
car.getPosition().setLatitude(car.getPosition().getLatitude() + 1)

smile БУГАГА
Добавлено @ 21:07
mr.DUDA
Чел, респект! Это же настолько очевидно, что никому раньше в голову не пришло!



--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
arilou
Дата 25.11.2005, 21:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

Репутация: 21
Всего: 61



Сча кто-нить предложит что-то типа такого

Код

int lat = car.getPosition().getLatitude();

while(something)
  lat++;

car.getPosition().setLatitude(lat);


Но это уже будет изврат! smile smile smile


--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
mr.DUDA
Дата 26.11.2005, 10:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



smile

нормальный такой use-case


--------------------
user posted image
PM MAIL WWW   Вверх
Sardar
Дата 26.11.2005, 14:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: нет
Всего: 317



О плюсах пропертей сказано много, мне нравяться smile

Пропертя позволяют красиво разделить понятия контролируемые свойства/характеристики обьекта и его действия(методы), не важно как они реализованы, нужно посмотреть просто на язык в целом.

Однако, как уже говорил Domestic Cat появляеться широкое поле для возможных "ошибок".

Например очень грубая: в геттере изменять состояние обьекта(свои/чужие поля). Тогда не возможно отследить конкретное состояние обьекта, т.к. оно будет меняться от типа выражения и от того как компилер сгенерит/оптимизирует вызовы. Конечно так никто не делает, но всё же smile

Реальная ошибка: в геттере выполняеться какое то сложное действие, вплоть до коннекта к БД со сложной выборкой и т.д. Затем другой программист не задумываясь что это за поле начинает использовать его в длинных выражениях, вместо того что бы записать результат во временное хранилище. Правда временное хранилище тоже плохой подход, лучше продумать дизайн класса, что бы он сам "экономил ресурсы", но это уже опыт.
В результате не явная потеря производительности, это уже серьёзно smile


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
mr.DUDA
Дата 26.11.2005, 17:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Согласен с Sardar-ом. Никто не застрахован от ошибок.


--------------------
user posted image
PM MAIL WWW   Вверх
Exception
Дата 26.11.2005, 18:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 29
Всего: 186



Цитата(mr @ 26.11.2005, 18:12)
Никто не застрахован от ошибок.


Цитата(Sardar @ 26.11.2005, 15:37)
Опыт - сын ошибок трудных
© А. С. Пушкин

smile
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.1294 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.