将变量设置为模块

Ale*_*lex 2 .net vb.net variables module

在我的项目中,我有几个模块,都使用相同的Subs.我使用的每个模块用于不同品牌的RFID读卡器,因为访问方法和读卡器输出不同,但遵循完全相同的步骤.在我的应用程序中,我想对这些步骤进行泛型调用,但是有一个应用程序设置确定要从中调用它的模块,以防止必须将所有调用项目更改为项目.我想做的事情如下:

Public CARD_READER_MODULE As ModMTI   'Which doesn't work
Run Code Online (Sandbox Code Playgroud)

然后

CARD_READER_MODULE.Connect()
... etc
Run Code Online (Sandbox Code Playgroud)

或者有更好的方法吗?

Mat*_*lko 5

对于您所描述的设计,您应该使用接口来描述要使用的方法,然后在每个类型的设备的新类中实现此接口.

例如,您的界面如下所示:

Public Interface IDevice
    Sub Connect()
End Interface
Run Code Online (Sandbox Code Playgroud)

然后为每个具有每个设备特定实现的设备创建一个类:

Public Class DeviceType1
    Implements IDevice

    Public Sub Connect() Implements IDevice.Connect
        'connect to this type of device here
    End Sub
End Class
Run Code Online (Sandbox Code Playgroud)

这种设计的优点在于您可以定义Type'IDevice'的变量,然后将其实例化为特定类型:

Dim dev As IDevice
dev = New DeviceType1
dev.Connect()
Run Code Online (Sandbox Code Playgroud)