Каждый раз, когда вы вызываете ServicesForm()
, вы создаете New
экземпляр класса ServicesVariables
, что означает, что значение свойства clicks
изменяется только один раз за экземпляр.
Еслиесли вы хотите, чтобы его можно было повторно использовать, вам нужно изменить область действия объекта ServicesVariables
, объявив его на уровне класса:
Partial Class openapps_myapp Inherits System.Web.UI.Page
Private MyServicesVariables As ServicesVariables = New ServicesVariables()
Private Sub ServicesForm()
MyServicesVariables.clicks += 1
End Sub
End Class
Дополнительные примечания:
Я изменил имя переменной, потому что не рекомендуется использовать однобуквенные переменные специально на уровне класса .Но вы все равно можете использовать любое другое имя переменной, если хотите.
Не следует использовать одно и то же имя для свойства и вспомогательного частного поля.Например, вы можете назвать свою собственность Clicks
и личное поле _clicks
.На самом деле, это хорошее соглашение, которому нужно следовать ...
... Тем не менее, если вы не планируете изменить логику свойства clicks
, вы можете избавитьсяприватной переменной, и вы можете сократить вашу собственность следующим образом:
Public Property Clicks As Integer
Вот и все!Это действительно все, что вам нужно в этом случае, которое называется Автоматически реализуемое свойство .Компилятор создает скрытое вспомогательное поле для вас и заботится о реализации свойства.
Возвращаясь к исходной проблеме , на самом деле есть другой способиметь свойство, значение которого можно изменить из любого места, то есть создать общее свойство .Общим свойствам не нужен экземпляр класса для их использования, они shared для всех экземпляров.
Вы должны only использовать общий член, когдаон не принадлежит экземпляру объекта, другими словами, его значение не отличается для каждого экземпляра.Если это то, что вы изначально хотели, ваш класс ServicesVariables
может выглядеть следующим образом:
Public Class ServicesVariables
Public Shared Property Clicks As Integer
' ..
' ..
End Class
И в вашем методе ServicesForm()
вы можете получить доступ к свойству Clicks
напрямую, не создавая экземплярсвоего класса:
Private Sub ServicesForm()
ServicesVariables.clicks += 1
End Sub