创建一个继承 SerialPort 的 class

Creating a class that inherits SerialPort

我有一个继承了 SerialPort 的 class,这个 class 设置串口的属性,如下面的代码所示。

Public Class Ports
    Inherits SerialPort

    WithEvents port As New SerialPort()
    Sub New()
        With port
            .BaudRate = 19200
            .Parity = IO.Ports.Parity.None
            .DataBits = 8
            .StopBits = IO.Ports.StopBits.One
            .Handshake = IO.Ports.Handshake.None
            .RtsEnable = False
            .ReceivedBytesThreshold = 1
            .NewLine = vbCr
            .ReadTimeout = 10000
        End With
    End Sub
End Class

问题是当我实例化它时,

Private WithEvents testPort As New Ports()

SerialPort 的属性没有转移过来,而是设置了默认值。

问题是因为您没有为对象设置实例,而是为该实例中的另一个变量设置实例。正如@the_lotus 指出的那样,删除变量或继承。我建议只删除不需要的变量 WithEvents port As New SerialPort() 然后使用实例...

Public Class Ports
    Inherits SerialPort

    Sub New()
        With Me
            .BaudRate = 19200
            .Parity = IO.Ports.Parity.None
            .DataBits = 8
            .StopBits = IO.Ports.StopBits.One
            .Handshake = IO.Ports.Handshake.None
            .RtsEnable = False
            .ReceivedBytesThreshold = 1
            .NewLine = vbCr
            .ReadTimeout = 10000
        End With
    End Sub

End Class