Я пытаюсь сохранить метку времени в константу в начале осуществления программы, которое будет использоваться всюду по программе. Например:
Const TIME_STAMP = Format(Now(), "hhmm")
Однако этот код генерирует ошибку компилятора - "Константное выражение, требуется". Это означает, что все константы в.NET VB должны содержать плоские, статические, трудно кодированные данные? Я знаю, что возможно инициализировать константу с динамическим значением на других языках (таких как Java) - что делает это, константа - то, что после начального присвоения Вы больше не можете изменять его. В.NET VB существует ли эквивалент?
То, что вы ищете, это ключевое слово readonly. Марка времени должна быть рассчитана во время выполнения и не может быть постоянным.
ReadOnly TIME_STAMP As String = Format(Now(), "hhmm")
По определению константы не динамичны. Если вы хотите переменную быть установленным один раз, и не изменены снова, я полагаю, что вы ищете ключевое слово
.
Public Shared ReadOnly TIME_STAMP = Format(Now(), "hhmm")
Обратите внимание, что «общий» является необязательным.
Я испытывал проблемы, аналогичные проблемам Рубена в отношении ситуации выхода из системы/входа в систему. Лучшее рассуждение, которое я смог найти до сих пор, связано с тем, что WatiN запускает IE с помощью COM-сервера. Могут быть проблемы с утилизацией, но это целая другая Опра...
Что касается ситуации тайм-аута, то она происходит время от времени, но обычно появляется сообщение в консоли NUnit и продолжается. Одно большое различие, которое я вижу между вашей реализацией и моей, заключается в том, что я запускаю экземпляр IE как одиночный объект. Таким образом, мне никогда не придется закрывать и повторно открывать IE между тестами, и с тех пор я не испытывал проблемы выхода из системы/входа в систему. Следовательно, мои испытательные циклы короче, даже когда ИС виден и не работает в фоновом режиме.
-121--4690945-По каждому запросу имеется копия состояния сеанса в памяти. Поэтому единственная стоимость, которую можно было бы сохранить путем локального копирования переменной сеанса, - это стоимость приведения из объекта в тип. Копия в памяти затем добавляется к сеансу в конце запроса.
Сериализация и десериализация сеанса на странице зависит от выбранного поставщика сеанса. Для состояния сеанса in-proc сериализация не выполняется. Для серверов сеансов объект должен быть сначала сериализован.
-121--4223032- Необходимо сделать его Shared Readonly
вместо Const
- последнее применяется только к константам compile-time . Только общий доступ
по-прежнему будет препятствовать изменению значения.
Java на самом деле не имеет концепции, такой как Const
- она просто замечает, когда статические конечные
значения фактически являются константами времени компиляции.