我在各种地方看到过,带有字符串 case
的 switch
语句有可能被编译器或JIT优化成哈希表以提高性能。 显然,具有非完美哈希函数的哈希表不能保证项目顺序,因此我想知道:
- C# 编译器或 JIT 是否可以执行将
switch
语句转换为哈希表以提供常数时间性能的优化? - 在 C# 中,
switch
语句是否保证按照从上到下的顺序检查case
?
我在各种地方看到过,带有字符串 case
的 switch
语句有可能被编译器或JIT优化成哈希表以提高性能。 显然,具有非完美哈希函数的哈希表不能保证项目顺序,因此我想知道:
switch
语句转换为哈希表以提供常数时间性能的优化?switch
语句是否保证按照从上到下的顺序检查 case
?switch
语句保证顺序的原因。 - Acidic
C++
中的switch
。 - Hamlet Hakobyanswitch
语句。代码的创建者将两个最常见的选项放在顶部,并认为它们通常会首先被检查,我只是想知道这是否属实。 - Acidic