我有一个多余的代码。 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
答案 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