Практическое руководство. Создание переменной, которая не изменяет значение
Обновлен: Ноябрь 2007
Понятие переменной, которая не изменяет свое значение, может показаться противоречивым. Но существуют ситуации, когда константа не подходит и полезно иметь переменную с фиксированным значением. В таком случае можно определить переменную-член с ключевым словом ReadOnly (Visual Basic).
Оператор Const (Visual Basic) нельзя использовать для объявления и присвоения постоянного значения в следующих случаях:
Инструкция Const не принимает тип данных, который требуется использовать
Вы не знаете значение во время компиляции
Не удается вычислить постоянное значение во время компиляции
Создание переменной, которая не изменяет значение
На уровне модуля объявите переменную-член при помощи Оператор Dim (Visual Basic) и используйте ключевое слово ReadOnly (Visual Basic).
Dim ReadOnly timeStarted
Можно указать ReadOnly только для переменной-члена. Это означает, что необходимо определить переменную на уровне модуля, вне любой процедуры.
Если можно вычислить значение в одной инструкции во время компиляции, используйте предложение инициализации в инструкции Dim. Используйте предложение As со знаком равенства (=), за которым следует выражение. Убедитесь, что компилятор может вычислить это выражение с постоянным значением.
Dim ReadOnly timeStarted As Date = Now
Можно присвоить значение переменной ReadOnly только один раз. После этого код никогда не сможет изменять ее значение.
Если не знаете значения во время компиляции или невозможно вычислить его во время компиляции в одной инструкции, можно по-прежнему назначить его в конструкторе во время выполнения. Чтобы сделать это, необходимо объявить переменную ReadOnly на уровне класса или структуры. В конструкторе для класса или структуры вычисляется значение фиксированной переменной, и оно присваивается переменной перед возвратом из конструктора.