VB.NET Класс не обновляет мои переменные

#vb.net #class #basic

#vb.net #класс #Базовые модели

Вопрос:

У меня есть два класса.

1-) NumberClass 2-) MessageClass

Числовой класс ;

 Public Class NumberClass

Property Number As Byte
End Class
  

Класс сообщений;

 Public Class MessageManager
Inherits NumberClass

Public Sub sendMessage()
    MsgBox(Number)
End Sub
End Class
Public Class Form1
  

Это мой код кнопок :

 Private Sub ShowNumberBtn_Click(sender As Object, e As EventArgs) Handles ShowNumberBtn.Click
    Dim messageManager As New MessageManager
    messageManager.sendMessage()
End Sub

Private Sub ChangeNumberBtn_Click(sender As Object, e As EventArgs) Handles ChangeNumberBtn.Click
    Dim numberClass As New NumberClass
    numberClass.Number = 50
    MsgBox("Number Changed to : " amp; numberClass.Number)
End Sub
  

Сначала я нажимаю кнопку изменить номер. Он изменяет значение числовой переменной на 50.
До сих пор все в порядке, но когда я нажимаю кнопку отправки сообщения, сообщение показывает старое значение переменной Number, оно не отражается в методе SendMessage.

Комментарии:

1. Вы должны включить код, который показывает вашу проблему.

2. окей, я добавил больше информации о своей проблеме, кстати, извините за мой английский

3. Другими словами, покажите нам, где вы создаете экземпляр этих классов с ключевым словом «New», обновляете значения, а затем пытаетесь отобразить значения (таким образом, показывая, что они «не изменились»). Ваше последнее редактирование ничего из этого не делает.

4. Хорошо, я добавил код своих кнопок

5. Ваши обработчики нажатия кнопок создают два СОВЕРШЕННО ОТДЕЛЬНЫХ экземпляра класса. Конечно, значение «не обновляется». Если вы хотите, чтобы два обработчика нажатия кнопок действовали на один и тот же экземпляр класса, затем переместите объявление на уровень ФОРМЫ, чтобы оба обработчика могли обращаться к одному и тому же экземпляру.

Ответ №1:

У меня все отлично работает … не уверен, что вы пробовали, поскольку вы никогда не обновляли свой код, чтобы показать свои попытки:

 Public Class Form1

    Private messageManager As New MessageManager

    Private Sub ShowNumberBtn_Click(sender As Object, e As EventArgs) Handles ShowNumberBtn.Click
        messageManager.sendMessage()
    End Sub

    Private Sub ChangeNumberBtn_Click(sender As Object, e As EventArgs) Handles ChangeNumberBtn.Click
        messageManager.Number = 50
        MsgBox("Number Changed to : " amp; messageManager.Number)
    End Sub

End Class

Public Class NumberClass

    Property Number As Byte

End Class

Public Class MessageManager
    Inherits NumberClass

    Public Sub sendMessage()
        MessageBox.Show("Number = " amp; Number)
    End Sub

End Class
  

Комментарии:

1. Эй, это сработало, но я не понимаю, что теперь изменилось? кстати, большое спасибо

2. Эй, пожалуйста, скажите мне, как это работает в этом коде, но не работает в моем коде, все то же самое, я не знаю, что со мной не так? plss

3. Что-то должно быть по-другому! ОБНОВИТЕ свой код в нашем исходном сообщении выше с помощью вашей текущей попытки, которая не работает, чтобы мы могли помочь вам выяснить, что не так.

4. Я уже пробовал это, но не вижу никаких различий. Я думаю, я глупый: (