2

VB.NET 2008 编译器是否有选择性地优化 Select Case 语句?

例如,可以将具有足够数量的整数情况的 Select Case 语句组织为二进制搜索。

我问这个是因为我很好奇是否应该选择 Select Case 来代替具有多个 Else If 的 If 语句,其中比较整数或其他基本数据类型。

4

2 回答 2

2

一般来说,除了这种性能微优化之外,您还应该担心代码的可读性和可维护性。

除非此开关在执行 1000 次(数百万次?)的循环内,否则这极不可能成为您的应用程序的性能瓶颈。

为了一致性,做出决定并坚持下去。通常,在分析性能瓶颈所在之前,不要对代码进行性能调整。

另请参阅此问题

于 2010-02-04T09:26:16.050 回答
1

Select Case有 40 个选项比 40 个ElseIf语句的字符串快 10 倍以上。这比您期望通过二分搜索获得的改进更大。我猜一个简单的整数Select Case使用与计算的 goto 语句等效的现代机器代码 - 它编译以便它根据整数的值直接分支到正确的“案例”。

我认为Select Case是一个去。

于 2010-02-06T02:00:07.453 回答