我有一种情况,我想传递一个对象Type作为比较逻辑的参数。
示例:
Sub Some (val as Control, typ as Type, ....)
...
if typeof val is typ then
...
end if
...
End Sub
我发现自己在多种方法中使用这种逻辑模式,并希望将逻辑压缩到一个位置而不是多个点,以简化。
这是验证此类结构的正确方法,还是有更好的方法来做这些事情?
答案 0 :(得分:0)
那不花很长时间
如果你想将比较抽象为通用,那么这应该会让你找到正确的逻辑。
Public Sub CompareType(val as Control, typ as String)
...
if TypeName(val) = typ then
...
end if
...
End Sub
基本上传递对象(val),如果你想进行一步抽象,可以是变体,然后如果你知道将为该Type返回的String值,那么将它作为String值传递
在代码运行中:
...
AutoSizeControl CurrentDb, frm, "Textbox"
...
模块声明:
Public Sub AutoSizeControl(ByRef db As Database, ByRef frm As Form, typ As String)
Dim ctl As Control, i As Integer
For i = 0 To (frm.Controls.Count - 1)
Set ctl = frm.Controls(i)
If TypeName(ctrl) = typ Then
ctl.ColumnWidth = -2
End If
Next
End Sub
希望这可以帮助其他可能需要这种抽象的人。