Member 12637386 Ответов: 1

Vb.net переменная область применения


Я объявил переменную Friend на своей странице start up. aspx. Я также пытался объявить его публичным

Разве я не должен иметь доступ к этой переменной по всему проекту?

Это должно быть легко, я знаю. Но я кое-что упускаю.

Что я уже пробовал:

Class _Default
    Inherits System.Web.UI.Page
     Friend testVar as string = "something"
End Class




На другой странице. aspx я пытаюсь -
Public Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

Dim readtestVar = testVar

End Sub


Выдает ошибку 'testVar не заявил. Он может быть недоступен из-за своего уровня защиты.

1 Ответов

Рейтинг:
5

OriginalGriff

Друг действительно означает, что он доступен - но он не наделяет его магической силой!
Давайте на минуту забудем о компьютерах и посмотрим на автомобили. Вы кладете мобильный телефон в бардачок своей машины и запираете его. Вы - как друг-дайте мне ключ от вашего бардачка. Значит ли это, что я могу использовать его, чтобы разблокировать бардачок в моей машине и получить ваш мобильный? Нет, потому что бардачок с телефоном - часть вашей машины, а не моей.
Друг в VB работает точно так же - ему требуется правильный экземпляр автомобиля, чтобы получить доступ к бардачку. Поскольку экземпляр находится на другой странице, вы не можете легко добраться до этой страницы, не говоря уже о доступе к ее переменным Friend.

Вместо этого переместите его в сеанс и получите доступ к нему там - это именно то, для чего существует сеанс!


Member 12637386

Спасибо. Но мне все еще нужна публичная переменная, доступная на разных страницах/подпрограммах.

Я пытался объявить его публичным, и я получаю ту же ошибку.

OriginalGriff

Поскольку Public делает то же самое: это модификатор доступа, он волшебным образом не делает его не требующим экземпляра.
Есть что - то, что делает это: Shared-но это очень опасно на веб-сайте, так как создает единственную переменную, общую для всего приложения. Но...многие пользователи вашего сайта будут использовать одно и то же приложение и, следовательно, одну и ту же переменную, поэтому оно может содержать не то, что вы думаете!
Серьезно: используйте сеанс.

Member 12637386

Да, я хочу, чтобы переменная была уникальной для пользователя. Я никогда даже не слышал о переменной сеанса и ищу информацию в интернете. Любой толчок к тому, где объявить об этом, был бы подспорьем. Опять же, он должен быть уникальным для пользователя и доступным на разных страницах .aspx.

OriginalGriff

Тогда сеанс-это путь (или куки-файлы, но они хранятся на компьютере пользователя)
https://www.google.co.uk/search?q=usign+the+session+vb&oq=usign+the+session+vb&aqs=chrome..69i57.3357j0j7&sourceid=chrome&ie=UTF-8
Даст вам все, что нужно.

Member 12637386

Спасибо OriginalGriff. Это очень пригодится

OriginalGriff

Пожалуйста!