русский

C# - pattern matching - many discards

8021  1 2 3 4 5 6 7 8 9 10 alle
AlexNek патриот25.02.24 12:15
AlexNek
NEW 25.02.24 12:15 
in Antwort alex445 25.02.24 09:31
Ничё не понял. Напишите пример.

int? Age; - так понятней или нужно всё расписать?


Только не увлекайтесь этими развесистыми деревьями

Даже и в этом варианте всё может выглядеть прилично

if(person.HasValidAge())...

#61 
AlexNek патриот25.02.24 12:25
AlexNek
NEW 25.02.24 12:25 
in Antwort alex445 25.02.24 09:34
Любой else (т.е. дискард, дефолт и прочее "всё, что не предыдущее")

не нужно всё мешать в одну кучу.

И можно смотреть на проблему с разных сторон или с разной "высоты". Домик на земле выглядит совсем по другому, чем с высоты птичьего полета.

И если на земле может интересовать вопрос - а где входная дверь, то с высоты уже будет интересно, а не повредит ли наш домик обвал с близлежащей горы.


Или - работаю ли я один или в команде. Как мы будет решать подобные проблемы в будущем?


#62 
alex445 коренной житель25.02.24 13:29
NEW 25.02.24 13:29 
in Antwort MrSanders 25.02.24 11:17

Не согласен. Не в общем случае. Есть разные строчки. Посмотри на пёрл. Вот где разгул для сокращателей. Только месяц спустя сам автор не мог объяснить что же он своим !__$@x.{__?$%x} хотел сказать. Зато одно строчка вместо 3.

5 if-else заменить на switch? Отлично. Но если мне для этого придётся писать brainfuck-подобный код, то лучше остаться с ифами.

Осталось только найти в моём свиче брейнфакподобный код.

#63 
alex445 коренной житель25.02.24 13:31
NEW 25.02.24 13:31 
in Antwort AlexNek 25.02.24 11:54
потом мы удивляемся, почему в Германии не создаются никакие продуктов мирового масштаба.

Точно, вы открыли мне глаза, теперь я знаю отчего в Германии не очень высокая рождаемость.

Недостаток женщин с пирсингом - это же так круто и бабанькам с закостенелым мозгом это не нужно.

Не оффтопте своими скелетами в шкафах, а то я начну про домик у моря!

#64 
alex445 коренной житель25.02.24 13:33
NEW 25.02.24 13:33 
in Antwort AlexNek 25.02.24 12:11
Во вторых, условие - "всё что не проверено это хорошо" часто не очень хороший выбор. Ну вот, что будет если возраст будет отрицательным и мы это не проверили?

Это зависит от задачи. В математике, например, функции обычно проверяют вблизи экстремумов, а остальные значения не трогают.

#65 
alex445 коренной житель25.02.24 13:35
25.02.24 13:35 
in Antwort AlexNek 25.02.24 12:15, Zuletzt geändert 25.02.24 13:36 (alex445)
Ничё не понял. Напишите пример.
int? Age; - так понятней или нужно всё расписать?

Нет, вы напишите, как вы будете свои налловые сосиски (типа person?.Age?.) проверять на разные условия для Age. А я потом подумаю, как это удобно в свиче записать. А то вы просто сказали, что у вас всё налл, а как вы с этим обращаетесь - не сказали.


if(person.HasValidAge())...

А портянка внутри HasValidAge как выглядит?

#66 
AlexNek патриот25.02.24 14:11
AlexNek
NEW 25.02.24 14:11 
in Antwort alex445 25.02.24 13:31
Не оффтопте

для этого нужно забанить пост на который я отвечал - смысл там идентичный

А про домик у моря мы уже вроде всё знаем бебе

#67 
AlexNek патриот25.02.24 14:13
AlexNek
NEW 25.02.24 14:13 
in Antwort alex445 25.02.24 13:33
В математике, например

А мы обсуждаем тут математику или что то другое?

#68 
AlexNek патриот25.02.24 14:33
AlexNek
NEW 25.02.24 14:33 
in Antwort alex445 25.02.24 13:35
А портянка внутри HasValidAge как выглядит?

Во первых, при чтении данной части кода не интересует что там внутри.

Во вторых, будет выглядеть не сложнее кода снаружи.

В третьих, извращения занести будет сложнее.

#69 
AlexNek патриот25.02.24 14:58
AlexNek
NEW 25.02.24 14:58 
in Antwort alex445 25.02.24 13:35
а как вы с этим обращаетесь - не сказали.

говорилось...

https://foren.germany.ru/showmessage.pl?Number=40802311&Bo...

Можно еще условие на налл добавить

#70 
alex445 коренной житель25.02.24 16:29
NEW 25.02.24 16:29 
in Antwort AlexNek 25.02.24 14:58, Zuletzt geändert 25.02.24 16:30 (alex445)

Т.е. проверка Age на налл делается легко и непринуждённо ещё одним кейсом.


И ещё раз - дискард с when я использую лишь в качестве костыля. Когда создатели языка дадут возможность добавлять кейсы, не привязанные к типу параметра свича, я избавлюсь от этого костыля, и станет снова всё по вашему феншую - один дискард на свич. С точки зрения компилятора, у меня и сейчас всё по феншую - один дефолтный кейс на свич. Дискард с when это не дефолтный кейс.

#71 
AlexNek патриот25.02.24 17:36
AlexNek
NEW 25.02.24 17:36 
in Antwort alex445 25.02.24 16:29
Когда создатели языка дадут возможность добавлять кейсы, не привязанные к типу параметра свича

срочно избавляйтесь, такая поддержка уже есть

#72 
alex445 коренной житель25.02.24 21:39
NEW 25.02.24 21:39 
in Antwort AlexNek 25.02.24 17:36

Где, как?

#73 
Murr патриот25.02.24 21:44
Murr
NEW 25.02.24 21:44 
in Antwort AlexNek 25.02.24 14:11

А про домик у моря мы уже вроде всё знаем бебе

--------

Не-не, мы точно знаем не все!!!

а вот сколько не знаем - точно не знаем. безум


#74 
AlexNek патриот25.02.24 21:46
AlexNek
NEW 25.02.24 21:46 
in Antwort alex445 25.02.24 21:39
Где, как?

уже и пример давал с when смущ без дискарда

#75 
AlexNek патриот25.02.24 22:07
AlexNek
NEW 25.02.24 22:07 
in Antwort Murr 25.02.24 21:44
а вот сколько не знаем

Это всё фигня - надо кричать, что гитом в студии опасно пользоваться.

Всё время делал без студии, выбираешь любой файл и откатываешь все последние изменения. Но проблемо.


А тут работаю с компонентом у которого есть еще "подфайлы": код, разметка стилей и ява скрипт.

Ну думаю, откачу компонент (тест не сработал), так эта гадина откатила всё на исходное состояние и код и яву скрипт и стили зло

#76 
alex445 коренной житель25.02.24 22:14
NEW 25.02.24 22:14 
in Antwort Murr 25.02.24 21:44

А про домик у моря мы уже вроде всё знаем бебе

--------

Не-не, мы точно знаем не все!!!

а вот сколько не знаем - точно не знаем.

Я когда узнал, что вам минимум 5 спален подавай... Но я про что-то такое и думал. ))

#77 
alex445 коренной житель25.02.24 22:16
NEW 25.02.24 22:16 
in Antwort AlexNek 25.02.24 21:46
Где, как?

уже и пример давал с when смущ без дискарда

Ну значит всё в порядке, и можно снова добавлять дискарды по вкусу.

#78 
alex445 коренной житель25.02.24 22:21
NEW 25.02.24 22:21 
in Antwort AlexNek 25.02.24 22:07, Zuletzt geändert 25.02.24 22:26 (alex445)

Т.е. вы в окошке Git Changes (справа) не можете выбрать только один файл компонента для откатывания?


В окне проектов эти части компонента могут располагаться в древовидной структуре. Но в директории они лежат все в плоской структуре, и никак не связаны. Гит отслеживает изменения не по компонентам, а по файлам. Не надо тыкать компонент в окне проектов и отменять там через контекстное меню Гита. Надо в окне изменений Гита, и отменять для каждого файла в отдельности.


Видите, те файлы, которые в окне проектов представлены типа связанными, в окне изменений - все по отдельности




#79 
AlexNek патриот25.02.24 22:26
AlexNek
NEW 25.02.24 22:26 
in Antwort alex445 25.02.24 22:21, Zuletzt geändert 25.02.24 22:27 (AlexNek)

на кой еще и окошко, так я могу и в другой проге сделать.

В Solution explorer есть контекстное меню и выбирается один файл

#80 
1 2 3 4 5 6 7 8 9 10 alle