我目前正在使用此代码来移动夹具:
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 编程的更多信息,但我无法理解 Delegates。
我想我可以将委托作为参数传递给 move() 函数,以便此类可以为我提供在初始化 ClampSet 对象时指定我真正想要使用的方法(即 MoveLeftClampOut())的选项。
而且我认为这将是一个更好的解决方案,因为我不知道将来会有多少种不同的clampMove 方法,并且我希望我的代码更加灵活。
如果我可以使用委托来更改 ClampSet 对象在 move() 上执行的方法,那么我的代码应该是什么样的?
PS我必须使用其他人提供给我的方法。(MoveLeftClampIn()、MoveLeftClampOut() 等..)