如何使用代表

时间:2013-08-01 22:08:36

标签: vb.net delegates

我目前正在使用此代码移动夹具:

Public Class ClampSet
    Public Sub New(ByVal gripL As Single, ByVal gripR As Single, ByVal passAxis As Integer)
        GripDistanceRight.DimMillimeters = gripL
        GripDistanceLeft.DimMillimeters = gripR
        Axis = passAxis
    End Sub

    Public GripDistanceRight As clsDimension = New clsDimension()
    Public GripDistanceLeft As clsDimension = New clsDimension()
    Public Axis As Integer

    Public Sub moveClampIn()
        If (Axis = 1) Then
            digiouts.MoveLeftClampIn()
        ElseIf Axis = 2 Then
            digiouts.MoveMiddleClampIn()
        ElseIf Axis = 3 Then
            digiouts.MoveRightClampIn()
        End If
    End Sub
    Public Sub moveClampOut()
        If (Axis = 1) Then
            digiouts.MoveLeftClampOut()
        ElseIf Axis = 2 Then
            digiouts.MoveMiddleClampOut()
        ElseIf Axis = 3 Then
            digiouts.MoveRightClampOut()
        End If
    End Sub
End Class

我正在尝试了解有关OO编程的更多信息,而我无法理解代表。

我想我可以将一个委托作为参数传递给move()函数,这样这个类可以为我提供指定在初始化ClampSet对象时我真正想要使用哪个方法(即MoveLeftClampOut())的选项

我认为这将是一个更好的解决方案,因为我不知道将来我将拥有多少种不同的clampMove方法,并希望我的代码更灵活。

如果我可以使用委托更改move()上的ClampSet对象执行哪个方法,那么我的代码应该如何实现呢?

P.S。我必须使用别人类提供给我的方法。 (MoveLeftClampIn(),MoveLeftClampOut()等。)

1 个答案:

答案 0 :(得分:0)

最好在你的情况下使用select语句。代表不是必需的。例如:您可以使用委托来调用另一个线程当前正在使用的方法以进行安全编码。