如何优化以下代码

时间:2016-06-16 14:16:46

标签: optimization vb6

我有一个多余的代码。 Sp请帮我优化代码。

基本上我正在试图从注册表中获取版本号。它可以是6个路径中的任何一个。所以我像下面的代码一样迭代。我觉得可能有比这更好的东西。请帮我优化以下代码。

Private Function as Integer()

'Some Code
versionnum = GetRegValue (hKey,path1,"Version","")

If versionnum = "" Then
    versionnum = GetRegValue (hKey,path2,"Version","")
EndIf

If versionnum = "" Then
    versionnum = GetRegValue (hKey,path3,"Version","")
EndIf

If versionnum = "" Then
    versionnum = GetRegValue (hKey,path4,"Version","")
EndIf

If versionnum = "" Then
    versionnum = GetRegValue (hKey,path5,"Version","")
EndIf

If versionnum = "" Then
    versionnum = GetRegValue (hKey,path6,"Version","")
EndIf

returnval = CompareVersion(Expected,versionnum)
'Some Code

End Function

2 个答案:

答案 0 :(得分:0)

由于路径是永久性的,因此将路径设为数组,然后循环。

顺便说一句,你应该CamelCase或under_score,这样它会更具可读性。 和常量上的ALL_CAPS

我不了解VB6,但它应该有意义。 它应该是这样的:

 for(int i = 0; i < 6; ++i){
     if(versionNum == null){
         versionNum = GetRegValue (hKey,path[i],"Version","");
     }
 }

 returnval = CompareVersion(EXPECTED,versionNum)

答案 1 :(得分:-1)

最后我使用下面的代码来优化它,

For i = 1 To 6
    versionnum = GetRegValue(hKey, Choose(i, ProductKey1, ProductKey2, ProductKey3, ProductKey4, ProductKey5, ProductKey6), "displayversion", "")
    If LenB(versionnum) Then Exit For
Next