Комплекс диктатора и WPF API
От: Baiker  
Дата: 19.08.24 14:57
Оценка:
Все вы знаете простейшую проперть у списковых контролов SelectedIndex. Отрывок из доков:

If you set SelectedIndex to a value less that -1, an ArgumentException is thrown.

If you set SelectedIndex to a value equal or greater than the number of child elements, the value is ignored.


Вот этот диктаторско-садистский метод разработки API — это у их погромиздов хроническое? В чём вообще смысл "ругаться" на SelectedIndex=-2 и проглатывать -1? Смысл-то один и тот же — "убери выделение любых элементов"! Причём с выходом за границы элементов (второй абзац) всё нормуль — как будто проектировал совсем другой человек, там невалидный индекс просто игнорируется (в отличии от идиотских капризов при работе с List<>).

То, что такое тупое важное поведение освещено в ремарках(!!), а не в (отсутствующей) секции "Exceptions" — отдельный просёр.

Чем-то разумным можно объяснить эти капризы разрабов? Там что, вся вселенная рухнет, если передать -2? Или этот говённый WPF так захардкожен "-1"-чками, что нельзя в сторону ступить?
Ты имеешь право быть диктатором и драконом, ограничивающим любые отклонения, но тогда уж КОНСИСТЕНТНЫМ! (т.е. везде одинаково строго) А делать там — строго, а тут на "отъявись" — признак безалаберной, неслаженной команды.

PS
Почему так прикипает? Ну например, ваш selectedIndex (в смысле переменная в программе) может зависеть от какого-нть алгоритма Монте Карло, где на выходе целое 0...конецСписка, либо "-100". Т.е. имей разрабы мозг, это "-100" можно было бы смело присвоить в ListBox.SelectedIndex ; а вместо этого мы сначала будем вынуждены проверять, что < 0 и потом передавать -1. Офигеть как удобно!
Отредактировано 19.08.2024 15:10 Baiker . Предыдущая версия . Еще …
Отредактировано 19.08.2024 15:06 Baiker . Предыдущая версия .
Re: Комплекс диктатора и WPF API
От: okon  
Дата: 03.11.24 02:29
Оценка:
B>PS
B>Почему так прикипает? Ну например, ваш selectedIndex (в смысле переменная в программе) может зависеть от какого-нть алгоритма Монте Карло, где на выходе целое 0...конецСписка, либо "-100". Т.е. имей разрабы мозг, это "-100" можно было бы смело присвоить в ListBox.SelectedIndex ; а вместо этого мы сначала будем вынуждены проверять, что < 0 и потом передавать -1. Офигеть как удобно!


Не знаю как там реализовано но вот пример почему именно -1 может быть.

Допустим есть массив который включает в том числе вариант не определено, в итоге получается a[SelectedIndex + 1] все что будет <-1 приведет к ошибке.
”Жить стало лучше... но противнее. Люди которые ставят точку после слова лучше становятся сторонниками Путина, наши же сторонники делают акцент на слове противнее ( ложь, воровство, лицемерие, вражда )." (с) Борис Немцов
Re[2]: Комплекс диктатора и WPF API
От: Baiker  
Дата: 12.11.24 00:58
Оценка:
Здравствуйте, okon, Вы писали:

B>>PS

B>>Почему так прикипает? Ну например, ваш selectedIndex (в смысле переменная в программе) может зависеть от какого-нть алгоритма Монте Карло, где на выходе целое 0...конецСписка, либо "-100". Т.е. имей разрабы мозг, это "-100" можно было бы смело присвоить в ListBox.SelectedIndex ; а вместо этого мы сначала будем вынуждены проверять, что < 0 и потом передавать -1. Офигеть как удобно!


O>Не знаю как там реализовано но вот пример почему именно -1 может быть.


O>Допустим есть массив который включает в том числе вариант не определено, в итоге получается a[SelectedIndex + 1] все что будет <-1 приведет к ошибке.


В том и прикол, что никакого массива нет. Есть контрол. Мы ему дали некий список из 10 элементов. И вот где-то в середине работы я получаю число для выделения элемента: либо -5, либо 0...9. Почему ListBox.SelectedIndex не может проглотить -5??? Очевидно же, что юзерские данные валидируются контролом нещадно, поэтому либо выделяем один элемент по валидному индексу, либо... снимаем всё выделение! Логика проще пареной репы. Но не у макрософака.
Re: Комплекс диктатора и WPF API
От: Maniacal Россия  
Дата: 12.11.24 07:45
Оценка:
Здравствуйте, Baiker, Вы писали:

B>Все вы знаете простейшую проперть у списковых контролов SelectedIndex. Отрывок из доков:


B>

B>If you set SelectedIndex to a value less that -1, an ArgumentException is thrown.

B>If you set SelectedIndex to a value equal or greater than the number of child elements, the value is ignored.


Забавно, что в русской версии документации по другому

Исключения
ArgumentOutOfRangeException
Указанный индекс меньше или равен -2.
-или-
Указанный индекс больше или равен числу элементов в поле со списком.

https://learn.microsoft.com/ru-ru/dotnet/api/system.windows.controls.primitives.selector.selectedindex?view=windowsdesktop-8.0
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.