![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
||
|
|
| nmn |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 593 Регистрация: 26.11.2005 Репутация: нет Всего: 1 |
довольно часто замечал запись вида:
причем в совершенно различных источниках зачем так? по идее ведь anotherVariable=someConditionalExpression и красивее и эффективнее? первый вариант:
второй вариант:
Это сообщение отредактировал(а) nmn - 8.1.2009, 19:19 |
||||||
|
|||||||
| Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: нет Всего: 130 |
Не понял, а что не так? Если a=b, то c=истина, иначе c=ложь.
-------------------- There's nothing left but silent epitaphs. |
|||
|
||||
| Partizan |
|
|||
![]() Let's do some .NET ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2828 Регистрация: 19.12.2005 Где: Санкт-Петербург Репутация: 8 Всего: 67 |
nmn, первый вариант просто читается легче...
-------------------- СУВ, Partizan. |
|||
|
||||
| Void |
|
|||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 2 Всего: 173 |
Гм. Я привык, что первый вариант иначе как индусским кодом не называют. -------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
| Partizan |
|
||||
![]() Let's do some .NET ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2828 Регистрация: 19.12.2005 Где: Санкт-Петербург Репутация: 8 Всего: 67 |
Void, окей...сравним два варианта:
1)
2)
-------------------- СУВ, Partizan. |
||||
|
|||||
| nmn |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 593 Регистрация: 26.11.2005 Репутация: нет Всего: 1 |
второй лучше ?
|
|||
|
||||
| Partizan |
|
|||
![]() Let's do some .NET ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2828 Регистрация: 19.12.2005 Где: Санкт-Петербург Репутация: 8 Всего: 67 |
ничего против второго варианта не имею...но лично мне первый вариант кажется более читабельным...
-------------------- СУВ, Partizan. |
|||
|
||||
| Bishop |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 188 Регистрация: 3.6.2005 Где: Минск, Беларусь Репутация: 3 Всего: 16 |
nmn, вы абсолютно правы, вторая запись "красивее и эффективнее" и понятнее.
Partizan, скажите пожалуйста что первично в приведённом вами отрывке: установка свойства или проверка условия? Отражает ли условие в данном месте реальное ветвление алгоритма? Я ничего против первого варианта не имею, но в его отношении прав Void |
|||
|
||||
| Partizan |
|
|||
![]() Let's do some .NET ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2828 Регистрация: 19.12.2005 Где: Санкт-Петербург Репутация: 8 Всего: 67 |
Bishop,
ну вот первый вариант... я читаю код строка за строкой: если строка не пустая и модель активна или выставлен флажок, то показать, в противном случае - скрыть... второй вариант visible = о.О... конечно и то и другое - читается...я говорю о том, что первый вариант - более очевиден =) Bishop, против второго также ничего не имею =) Про красоту и эффективность даже не спорю =) Тут в общем то и спорить не о чем) -------------------- СУВ, Partizan. |
|||
|
||||
| PashaPash |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1233 Регистрация: 3.1.2008 Репутация: 9 Всего: 49 |
Поддерживаю Partizan-а. Первая запись читабельнее. А еще она позволяет легко поставить отдельные breakpoint-ы на каждую ветку, например, поймать момент когда this.Visible выставляется в false и пропустить его в дебаге.
Это сообщение отредактировал(а) PashaPash - 8.1.2009, 19:11 |
|||
|
||||
| QryStaL |
|
|||
![]() Intellectual feast ![]() ![]() Профиль Группа: Участник Сообщений: 914 Регистрация: 30.11.2005 Репутация: 10 Всего: 32 |
чем эффективнее? Обычно код нужно поддерживать. Если это трудно делать (как во втором случае), то его красота сомнительна. -------------------- I don't need a reason being who I am... |
|||
|
||||
| nmn |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 593 Регистрация: 26.11.2005 Репутация: нет Всего: 1 |
ну если только ради брейпоинта подстраивать код, по моему это неразумно ведь существует такое понятие как условный брейкпоинт, вот туда эти условия и записать |
|||
|
||||
| PashaPash |
|
||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1233 Регистрация: 3.1.2008 Репутация: 9 Всего: 49 |
Сравни тык по F9 с выделением условия и вписыванием его в нужное поле (про которое тут 50% народа не догадывается). А вообще 1-й вариант читабельнее потому что он именно "читается" как "если срока непустая и blah-blah-blah то сделать видимым, иначе - невидимым". А первый вариант - "установить видимость непустоте строки или истинности blah-blah-blah". В спеках и вообще при описании поведения обычно используют первую формулировку. Первый вариант легче дописывается до случая когда нужно сделать еще что-то только в одной ветке, например:
З.Ы. я проголосовал за 2, тупо промахнулся Это сообщение отредактировал(а) PashaPash - 9.1.2009, 01:01 |
||||
|
|||||
| kemiisto |
|
||||
![]() Дикий Кот. =^.^= ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Участник Клуба Сообщений: 3292 Регистрация: 29.7.2007 Репутация: 3 Всего: 160 |
Partizan, ты уж извини, но ты чушь написал. Первый вариант как раз таки скрывает суть происходящего. Одной булевой перемонной (anotherVariable) присваивается значение другой (someConditionalExpression). Что и написано во втором варианте. If statement нужен для конструкций вида:
где ... - есть некий набор инструкций. Если не секрет, что ты в приведённом пример отлаживать собрался? a = b?
Void, поддерживаю! Добавлено через 1 минуту и 35 секунд PashaPash, вот сейчас ты и подтвердил мои слова. Не о том немного думаете. Взгляните внимательнее на обсуждаемый код. Это сообщение отредактировал(а) kemiisto - 9.1.2009, 01:01 -------------------- |
||||
|
|||||
| Void |
|
|||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 2 Всего: 173 |
kemiisto, всё же определённая логика в этом есть, когда речь идёт о свойствах. component.Visible = booleanVar — это не просто присвоение, но и сопутствующие действия. Кстати, если считать значение этого свойства на следующей строчке, оно не обязательно будет равно только что присвоенному.
-------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | .NET для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |