EDIT Мой первоначальный ответ был неверным. Повторное повторение ...
Технически, как указано в @Curt, переменная Shared
делится между экземплярами класса.
Однако, с кодом как есть, менее вероятно, что значение будет использоваться совместно с пользователями, так как оно установлено для локальной копии каждого пользователя значения в их сеансе в Page_Init
.
Существует возможный «состояние гонки», где после того, как общая переменная UserNumber
инициализирован в Page_Init
, а другой пользователь отправляет запрос, который обновляет значение этой переменной из своей сессии первый пользователь будет видеть второй пользователя стоимость. то есть пользователи могут видеть значения других пользователей для одновременных запросов.
Вместо этого я рекомендую использовать ReadOnly
неразделяемого свойства для получения значения из сессии один раз:
Private mUserNumber As String
Public ReadOnly Property UserNumber As String
Get
If String.IsNullOrEmpty(mUserNumber) Then
mUserNumber = Session("UserNumber")
End If
Return mUserNumber
End Get
End Property
Это использует шаблон под названием «Ленивая загрузка», который я использую в режиме только для чтения свойств много на страницах для повышения производительности и удобочитаемости кода.
Да; как переменная «Shared», она доступна для всех экземпляров ... поэтому все пользователи приложения, которые работают в одном и том же процессе. –