将变量设置为模块

时间:2016-07-11 12:18:15

标签: .net vb.net variables module

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

Public CARD_READER_MODULE As ModMTI   'Which doesn't work

然后

CARD_READER_MODULE.Connect()
... etc

或者有更好的方法吗?

2 个答案:

答案 0 :(得分:5)

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

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

Public Interface IDevice
    Sub Connect()
End Interface

然后为每个设备创建一个类,其中包含每个设备的特定实现:

Public Class DeviceType1
    Implements IDevice

    Public Sub Connect() Implements IDevice.Connect
        'connect to this type of device here
    End Sub
End Class

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

Dim dev As IDevice
dev = New DeviceType1
dev.Connect()

答案 1 :(得分:0)

我认为您应该尝试找到更好的方法来实现您想要做的事情。

我会为您的RFID阅读器创建public class,在该课程中,您可以拥有与该特定阅读器相关的属性和功能。

Public class Readers

 Public function sharedFunction()
 End function

   Public class Reader1
   End Class

End class

如果您只想在不创建类(对象)实例的情况下访问函数,请执行I.E.共享代码,然后在您的课程中使用“共享”功能。

我会在我的类的构造函数中添加一个参数,告诉它我想要使用哪个读者(子类)。您的父类可以有许多子(reader)类,以及所有这些类都可以使用的一组共享函数。