Если еще, если или случай Переключателя [дубликат]

7
задан Community 23 May 2017 в 12:34
поделиться

7 ответов

И для удобочитаемости и для смысла используют оператор переключения вместо загрузок операторов IF.

оператор переключения немного быстрее хотя:

http://www.blackwasp.co.uk/SpeedTestIfElseSwitch.aspx (сначала пораженный в Google)

компилятор может оптимизировать оператор переключения так использование, что, если бы у Вас есть больше, чем, я сказал бы, 3 или 4 различных случая

6
ответ дан 7 December 2019 в 01:28
поделиться

Что Вы включаете? При включении строки компилятор C# или преобразовывает ее в словарь или в серию если/еще проверки. То, которое будет быстрее, зависит от рассматриваемых строк (включая строку кандидата).

, Если Вы включаете интегральное значение, я полагаю, что компилятор C# всегда использует оператор переключения IL - но это может или не может быть быстрее, чем, если/еще последовательность в зависимости от значений включила. (Если они находятся в большом непрерывном блоке, CLR может просто перейти к правильному месту в таблице - если они являются очень разрозненными, я подозреваю, что это не помогает.)

это просто неактивный запрос, или Вы действительно микрооптимизируете на этом уровне? Любое различие в производительности будет незначительным в подавляющем большинстве случаев - пишут для удобочитаемости.

3
ответ дан 7 December 2019 в 01:28
поделиться

Это - больше вопрос стиля, чем производительность. Любое различие в производительности будет neglibible, по-моему. Кроме того, см. https://stackoverflow.com/questions/395618/ifelse-vs-switch.

1
ответ дан 7 December 2019 в 01:28
поделиться

Если Вы используете интервал/строку/и т.д., то switch имеет некоторые более сложные опции перехода, которые могли бы сделать switch более эффективный, если у Вас есть много условий. Однако разница, вероятно, не будет огромна, и switch не опция для всех типов (только основанный на целом числе, и строка).

0
ответ дан 7 December 2019 в 01:28
поделиться

Я считал, что операторы переключения могут быть немного быстрее.

0
ответ дан 7 December 2019 в 01:28
поделиться

При обращении к проблемам производительности необходимо измерить различие с помощью реалистических данных. То, что Вы спрашиваете это со спекулятивной точки зрения, предлагает, чтобы у Вас не было фактической проблемы производительности для контакта с, и поэтому необходимо волноваться, о котором больше читаемое/удобное в сопровождении

0
ответ дан 7 December 2019 в 01:28
поделиться

Хитрый, необходимо было бы запустить тесты, потому что if's и переключатели приводит к другому коду IL.

можно было бы надеяться, что они были идентичны.

0
ответ дан 7 December 2019 в 01:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: