C# - pattern matching - many discards
Ничё не понял. Напишите пример.
int? Age; - так понятней или нужно всё расписать?
Только не увлекайтесь этими развесистыми деревьями
Даже и в этом варианте всё может выглядеть прилично
if(person.HasValidAge())...
Любой else (т.е. дискард, дефолт и прочее "всё, что не предыдущее")
не нужно всё мешать в одну кучу.
И можно смотреть на проблему с разных сторон или с разной "высоты". Домик на земле выглядит совсем по другому, чем с высоты птичьего полета.
И если на земле может интересовать вопрос - а где входная дверь, то с высоты уже будет интересно, а не повредит ли наш домик обвал с близлежащей горы.
Или - работаю ли я один или в команде. Как мы будет решать подобные проблемы в будущем?
Не согласен. Не в общем случае. Есть разные строчки. Посмотри на пёрл. Вот где разгул для сокращателей. Только месяц спустя сам автор не мог объяснить что же он своим !__$@x.{__?$%x} хотел сказать. Зато одно строчка вместо 3.
5 if-else заменить на switch? Отлично. Но если мне для этого придётся писать brainfuck-подобный код, то лучше остаться с ифами.
Осталось только найти в моём свиче брейнфакподобный код.
потом мы удивляемся, почему в Германии не создаются никакие продуктов мирового масштаба.Точно, вы открыли мне глаза, теперь я знаю отчего в Германии не очень высокая рождаемость.
Недостаток женщин с пирсингом - это же так круто и бабанькам с закостенелым мозгом это не нужно.
Не оффтопте своими скелетами в шкафах, а то я начну про домик у моря!
Во вторых, условие - "всё что не проверено это хорошо" часто не очень хороший выбор. Ну вот, что будет если возраст будет отрицательным и мы это не проверили?
Это зависит от задачи. В математике, например, функции обычно проверяют вблизи экстремумов, а остальные значения не трогают.
Ничё не понял. Напишите пример.int? Age; - так понятней или нужно всё расписать?
Нет, вы напишите, как вы будете свои налловые сосиски (типа person?.Age?.) проверять на разные условия для Age. А я потом подумаю, как это удобно в свиче записать. А то вы просто сказали, что у вас всё налл, а как вы с этим обращаетесь - не сказали.
if(person.HasValidAge())...
А портянка внутри HasValidAge как выглядит?
Не оффтопте
для этого нужно забанить пост на который я отвечал - смысл там идентичный
А про домик у моря мы уже вроде всё знаем
А портянка внутри HasValidAge как выглядит?
Во первых, при чтении данной части кода не интересует что там внутри.
Во вторых, будет выглядеть не сложнее кода снаружи.
В третьих, извращения занести будет сложнее.
а как вы с этим обращаетесь - не сказали.
говорилось...
https://foren.germany.ru/showmessage.pl?Number=40802311&Bo...
Можно еще условие на налл добавить
Т.е. проверка Age на налл делается легко и непринуждённо ещё одним кейсом.
И ещё раз - дискард с when я использую лишь в качестве костыля. Когда создатели языка дадут возможность добавлять кейсы, не привязанные к типу параметра свича, я избавлюсь от этого костыля, и станет снова всё по вашему феншую - один дискард на свич. С точки зрения компилятора, у меня и сейчас всё по феншую - один дефолтный кейс на свич. Дискард с when это не дефолтный кейс.
Когда создатели языка дадут возможность добавлять кейсы, не привязанные к типу параметра свича
срочно избавляйтесь, такая поддержка уже есть
А про домик у моря мы уже вроде всё знаем
--------
Не-не, мы точно знаем не все!!!
а вот сколько не знаем - точно не знаем.
а вот сколько не знаем
Это всё фигня - надо кричать, что гитом в студии опасно пользоваться.
Всё время делал без студии, выбираешь любой файл и откатываешь все последние изменения. Но проблемо.
А тут работаю с компонентом у которого есть еще "подфайлы": код, разметка стилей и ява скрипт.
Ну думаю, откачу компонент (тест не сработал), так эта гадина откатила всё на исходное состояние и код и яву скрипт и стили
А про домик у моря мы уже вроде всё знаем
--------
Не-не, мы точно знаем не все!!!
а вот сколько не знаем - точно не знаем.
Я когда узнал, что вам минимум 5 спален подавай... Но я про что-то такое и думал. ))
Где, как?уже и пример давал с when без дискарда
Ну значит всё в порядке, и можно снова добавлять дискарды по вкусу.
Т.е. вы в окошке Git Changes (справа) не можете выбрать только один файл компонента для откатывания?
В окне проектов эти части компонента могут располагаться в древовидной структуре. Но в директории они лежат все в плоской структуре, и никак не связаны. Гит отслеживает изменения не по компонентам, а по файлам. Не надо тыкать компонент в окне проектов и отменять там через контекстное меню Гита. Надо в окне изменений Гита, и отменять для каждого файла в отдельности.
Видите, те файлы, которые в окне проектов представлены типа связанными, в окне изменений - все по отдельности
на кой еще и окошко, так я могу и в другой проге сделать.
В Solution explorer есть контекстное меню и выбирается один файл