如何阻止C#的switch语句生成CIL开关指令

use*_*017 4 c# clr switch-statement

C#的switch语句可以编译为CIL开关指令,或if/else,这取决于此处提到的语句中的情况.有没有办法强制编译器始终在代码块中生成if/else变体?

Jon*_*eet 7

最简单的方法是在代码中使用if/else.除了其他任何东西,这使读者更清楚,这是你想要发生的而不是使用开关.

编辑:好的,所以可读性对你来说并不重要 - 但基本上如果你想要编译代码改变,源代码将不得不改变.您可以使用Mono编译器并自行修改它,但我怀疑是否有任何方法可以让Microsoft编译器有效地忽略您正在使用switch语句.