重构维护

时间:2014-12-18 19:08:29

标签: vb.net

Public Sub ButtonVisibilityOnTab()
    Select Case ctl.Parent.Name
        Case "tabGeneral"
            ctl.btnAdd.Visible = True               
        Case "tabSecond"
            ctl.btnAdd.Visible = False                
        Case "tabThird"
            ctl.btnAdd.Visible = False               
        Case Else
            ctl.btnAdd.Visible = False               
    End Select
End Sub

如何优化/重构上述代码。

我有一个带有3个标签的应用,并且它们之间有一个共同的用户控件。我想为添加按钮启用可见性我只有第一个选项卡。

如何优化代码,以便将来如果重用用户控件可以避免另一种情况。

我应该使用制表符控件名称传递bool值来完成该操作。 或者控件数组是否合乎逻辑,作为方法的值传递。

3 个答案:

答案 0 :(得分:1)

在编写代码时,可以将其简化为

 Public Sub ButtonVisibilityOnTab()
     ctl.btnAdd.Visible = (ctl.Parent.Name.ToLower().Equals("tabgeneral"))
 End Sub

或者更一般地说,

 Public Sub ButtonVisibilityOnTab(CompareTo as String)
     ctl.btnAdd.Visible = (ctl.Parent.Name.ToLower().Equals(CompareTo.ToLower()))
 End Sub

答案 1 :(得分:0)

这对我有用,我开始将控件名称作为参数传递。

Private Sub ButtonVisibilityOnTab(controlName As String, blnShowOrNot As Boolean)
    If _ctl.Parent.Name = controlName Then
        _ctl.btnAdd.Visible = blnShowOrNot            
    Else
        _ctl.btnAdd.Visible = Not (blnShowOrNot)          
    End If
End Sub

答案 2 :(得分:0)

如果你有很多这样的陈述,你可以创建一个设置类。

Class Settings
    Public Property CanAdd As Boolean
End Class

此类将位于每个选项卡内,每个选项卡将设置自己的值。然后,您的按钮可见性功能将查看当前选项卡设置。

Public Sub ButtonVisibilityOnTab()
    ctl.btnAdd.Visible = ctl.Parent.Setting.CanAdd
End Sub

然后,您可以在所有选项卡上实现处理设置的界面。那么你的功能就像。

Public Sub ButtonVisibilityOnTab()
    ctl.btnAdd.Visible = CType(ctl.Parent, ISomeInterface).Setting.CanAdd
End Sub