2016-06-02 4 views
0

У меня есть класс, который наследует SerialPort, и этот класс задает свойства последовательного порта, как показано в приведенном ниже коде.Создание класса, который наследует SerialPort

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 не передаются по и значения по умолчанию установлены.

+2

Создание SerialPort внутри вашего класса, который наследует от SerialPort это странно. Ваше значение не задано внутри экземпляра для экземпляра instance.port. Я бы удалял переменную порта или удалял наследование. –

+0

Причина, по которой я выполняю наследование, заключается в том, что мне нужны все остальные методы в классе последовательного порта. –

+0

Я не уверен, что я точно понимаю, о чем вы говорите. –

ответ

1

Проблема заключается в том, что вы не устанавливаете экземпляр для объекта, а используете его для другой переменной внутри этого экземпляра. Как указал @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 
+1

О! Теперь я понимаю. Вау, мне нужно обновить экземпляр. –

+0

@HighMans это нормально, у всех нас есть такие моменты. Рад, что смог помочь! – Codexer

Смежные вопросы