VB.NET 2008 编译器是否有选择地优化 Select Case 语句?
例如,具有足够数量整数案例的 Select Case 语句可以组织为二分搜索。
我问这个问题是因为我很好奇是否应该选择 Select Case 来代替具有多个 Else If 的 If 语句,其中比较整数或其他基本数据类型。
一般来说,除了这种性能微优化之外,您还应该担心代码的可读性和可维护性。
除非此开关位于执行 1000(数百万?)次的循环内,否则这不太可能成为应用程序的性能瓶颈。
做出决定并坚持下去,以保持一致性。一般来说,在分析性能瓶颈所在之前不要对代码进行性能调整。
另请参阅这个问题。
Select Case
比一串 40 个 ElseIf
语句快 10 倍以上。这比您期望通过二分搜索获得的改进要大。我猜想一个简单的整数 Select Case
使用与计算的 goto 语句等效的现代机器代码——它进行编译,以便根据整数的值直接分支到正确的“case”。
我认为
Select Case
是最合适的选择。