Ограничения оператора переключения С# - почему?

Это мой оригинальный пост, вызвавший switch-statement споры... потому что он неправильный:

Оператор switch c#-language отличается вещь как большой switch оператор if-else. Каждый switch случай должен быть уникальным c# и оцениваться статически. Оператор c#.net switch делает ветвь постоянного c-sharp времени независимо от сколько switch-case у вас дел. если-иначе оператор .cs-file оценивает каждое условие пока c#.net не найдет истинный.


На самом c#.net деле оператор switch C# не всегда switch-statement является ветвью с постоянным c-sharp временем.

В некоторых случаях .cs-file компилятор будет использовать c# оператор CIL switch, который c-sharp действительно представляет csharp собой ветвь с постоянным switch временем, использующую таблицу switch-statement переходов. Однако в редких c# случаях, как указано в Ivan Hamilton, компилятор c-sharp может сгенерировать что-то visual-c# совершенно другое.

На самом c#.net деле это довольно легко проверить, написав .cs-file различные операторы переключения c#.net C#, некоторые разреженные, некоторые switch-case плотные, и просмотрев полученный switch-statement CIL с помощью инструмента c# ildasm.exe.

c#

switch-statement

2022-11-14T19:24:30+00:00