Действительно ли возможно объявить динамическую константу в.NET VB?

Я пытаюсь сохранить метку времени в константу в начале осуществления программы, которое будет использоваться всюду по программе. Например:

Const TIME_STAMP = Format(Now(), "hhmm")

Однако этот код генерирует ошибку компилятора - "Константное выражение, требуется". Это означает, что все константы в.NET VB должны содержать плоские, статические, трудно кодированные данные? Я знаю, что возможно инициализировать константу с динамическим значением на других языках (таких как Java) - что делает это, константа - то, что после начального присвоения Вы больше не можете изменять его. В.NET VB существует ли эквивалент?

5
задан MPelletier 9 May 2012 в 23:59
поделиться

3 ответа

3895883-

То, что вы ищете, это ключевое слово readonly. Марка времени должна быть рассчитана во время выполнения и не может быть постоянным.

ReadOnly TIME_STAMP As String = Format(Now(), "hhmm")
6
ответ дан 18 December 2019 в 13:14
поделиться

По определению константы не динамичны. Если вы хотите переменную быть установленным один раз, и не изменены снова, я полагаю, что вы ищете ключевое слово .

Public Shared ReadOnly TIME_STAMP = Format(Now(), "hhmm")

Обратите внимание, что «общий» является необязательным.

1
ответ дан 18 December 2019 в 13:14
поделиться

Я испытывал проблемы, аналогичные проблемам Рубена в отношении ситуации выхода из системы/входа в систему. Лучшее рассуждение, которое я смог найти до сих пор, связано с тем, что WatiN запускает IE с помощью COM-сервера. Могут быть проблемы с утилизацией, но это целая другая Опра...

Что касается ситуации тайм-аута, то она происходит время от времени, но обычно появляется сообщение в консоли NUnit и продолжается. Одно большое различие, которое я вижу между вашей реализацией и моей, заключается в том, что я запускаю экземпляр IE как одиночный объект. Таким образом, мне никогда не придется закрывать и повторно открывать IE между тестами, и с тех пор я не испытывал проблемы выхода из системы/входа в систему. Следовательно, мои испытательные циклы короче, даже когда ИС виден и не работает в фоновом режиме.

-121--4690945-

По каждому запросу имеется копия состояния сеанса в памяти. Поэтому единственная стоимость, которую можно было бы сохранить путем локального копирования переменной сеанса, - это стоимость приведения из объекта в тип. Копия в памяти затем добавляется к сеансу в конце запроса.

Сериализация и десериализация сеанса на странице зависит от выбранного поставщика сеанса. Для состояния сеанса in-proc сериализация не выполняется. Для серверов сеансов объект должен быть сначала сериализован.

-121--4223032-

Необходимо сделать его Shared Readonly вместо Const - последнее применяется только к константам compile-time . Только общий доступ по-прежнему будет препятствовать изменению значения.

Java на самом деле не имеет концепции, такой как Const - она просто замечает, когда статические конечные значения фактически являются константами времени компиляции.

7
ответ дан 18 December 2019 в 13:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: