Do switch语句保证顺序

本文关键字:顺序 语句 switch Do | 更新日期: 2023-09-27 18:00:09

我在很多地方读到,有string情况的switch语句可能会(通过编译器或JIT)优化为哈希表,以提高性能。具有非完美哈希函数的哈希表显然不能保证项目顺序,所以我想知道:

  1. C#编译器或JIT是否可以执行优化,将switch语句转换为哈希表,以提供恒定的时间性能
  2. C#中的switch语句是否保证从上到下按顺序检查case

Do switch语句保证顺序

不,没有任何保证将维持顺序,因为这是纯粹的编译器实现细节,所以即使现在是真的,对于.net 5.1(比如)来说,也可能是错误的。

CCD_ 7构造用于识别不同可用选项之间的唯一选项。因此,如果不是从性能的角度来看,顺序并不重要,但即使如此,它基本上也是无关紧要的,而如果不是,则由于上述原因无法预测。

因此,如果您正在寻找一些性能瓶颈,请不要关注这一点,而是关注程序的其他部分。