定义 Select Case 和 If-Then-Else 语句的默认行为
如果没有为 Select Case 或 If-Then-Else 语句定义默认操作,可能发生不可预知的结果。
建议
为避免不可预知的结果,使用 If-Then-Else 语句的 Select Case 时,应始终定义默认行为。
以下是定义现有 Select Case 和 If-Then-Else 语句未涵盖情形的默认行为的错误与正确方式。
该子例程的编写者旨在让 BG_USER_01 字段仅在该缺陷的状态为“Open”、“New”或“Reopen”时才可见。但是,如果“Closed”或“Fixed”缺陷的 IsVisible 属性在此子例程的实例之前设置为 True,则该“Closed”或“Fixed”缺陷仍将可见。这是因为没有专门为“Closed”或“Fixed”缺陷定义 case 语句。
示例:
Sub Bug_FieldChange(FieldName)
If FieldName="BG_STATUS" Then
Select Case Bug_Fields(FieldName).Value
Case "Open", "New", "Reopen" _
Bug_Fields("BG_USER_01").IsVisible = True
End Select
End If
End Sub
此子例程能有效处理所有可能情况。
示例:
Sub Bug_FieldChange(FieldName)
If FieldName="BG_STATUS" Then
Select Case Bug_Fields(FieldName).Value
Case "Open", "New", "Reopen"
Bug_Fields("BG_USER_01").IsVisible = True
Case Else
Bug_Fields("BG_USER_01").IsVisible = False
End Select
End If
End Sub

