Red*_*ils 6 database vb.net if-statement switch-statement
我有三个条件要比较.哪两个在以下两个之间更快?请指出我.谢谢大家!
If var = 1 then
Command for updating database
ElseIf var = 2 then
Command for updating database
ElseIf var = 3 then
Command for updating database
EndIf
Run Code Online (Sandbox Code Playgroud)
和
Select Case var
Case 1
Command for updating database
Case 2
Command for updating database
Case 3
Command for updating database
End Select
Run Code Online (Sandbox Code Playgroud)
Ham*_*ith 13
如果您编译这两个片段并使用反射器进行反汇编,您将看到它们最终都与IL实际上相同.编译器替换了if / elsewith case语句.
如果遇到性能问题,这种微优化很可能无法帮助您.
如果您遇到性能问题,那么您需要分析程序并找出瓶颈所在.
如果您没有性能问题,请停止冒汗,并担心编写易于理解的代码.
war*_*ren 10
从理论上讲,a switch..case 应该更快,因为它是一个查找表(通常由编译器实现).
但是,如果您担心哪些运行速度更快,并且它确实是您程序中的瓶颈,那么您就拥有了一个非常好的项目.