www.fgks.org   »   [go: up one dir, main page]

Как стать автором
Обновить

Комментарии 6

if ( .... || SceneSNO.Id == 183556 || SceneSNO.Id == 183557 || SceneSNO.Id == 183502 || SceneSNO.Id == 183505 || SceneSNO.Id == 183557 || SceneSNO.Id == 183519 || .... )

Интересно, а окажись оно в массиве (не в set), то оно бы тоже задетектило дубликат?

А не подскажете конкретнее случай про который вы пишете?

Если вы про подобное сравнение одного и того же элемента массива с дублирующимся числовым литералом, то да, анализатор подобное поймает.

Самый первый вариант. Логичным рефакторингом было бы забить эти значения в массив и поменять проверку на какой-нибудь array.contains(SceneSNO.Id) . Во избежание можно и в сет, но интересен кейс именно с массивом.

Нет, в таком случае анализатор не будет выдавать предупреждение, т.к. иметь в массиве одинаковые элементы является нормальной ситуацией. Здесь же одно из подвыражений явно ошибочно, т.к. если бы первое подвыражение было true, то до второго даже не дошли бы.

логичнее смотрится Enum на int'ах. Дополнительно можно и специфичные флаги в элементах размещать

в targets не будут добавлены новые объекты, ведь метод Concat не изменяет какое-либо из исходных перечислений, а создаёт новое.

Неплохо было бы указать тип targets, так как иначе у него может быть совершенно любая реализация метода Concat.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий