Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Declara y define una o varias constantes.
Sintaxis
[ <attributelist> ] [ accessmodifier ] [ Shadows ]
Const constantlist
Partes
attributelist
Opcional. Lista de atributos que se aplican a todas las constantes declaradas en esta instrucción. Consulte Lista de atributos entre corchetes angulares ("<" y ">").
accessmodifier
Opcional. Úselo para especificar qué código puede acceder a estas constantes. Puede ser público, protegido, amigo, amigo protegido, privado o privado protegido.
Shadows
Opcional. Úselo para volver a declarar y ocultar un elemento de programación en una clase base. Vea Sombras.
constantlist
Obligatorio. Lista de constantes que se declaran en esta instrucción.
constant
[ ,
constant
... ]
Cada constant tiene la sintaxis y las partes siguientes:
constantname
[ As
datatype
] =
initializer
| Parte | Descripción |
|---|---|
constantname |
Obligatorio. Nombre de la constante. Vea Nombres de elementos declarados. |
datatype |
Necesario si Option Strict es On. Tipo de datos de la constante. |
initializer |
Obligatorio. Expresión que se evalúa en tiempo de compilación y se asigna a la constante. |
Observaciones
Si tiene un valor que nunca cambia en la aplicación, puede definir una constante con nombre y usarla en lugar de un valor literal. Un nombre es más fácil de recordar que un valor. Puede definir la constante una vez y usarla en muchos lugares del código. Si en una versión posterior necesita volver a definir el valor, la instrucción es el único lugar en el Const que necesita realizar un cambio.
Solo puede usar Const en el nivel de módulo o procedimiento. Esto significa que el contexto de declaración de una variable debe ser una clase, estructura, módulo, procedimiento o bloque, y no puede ser un archivo de origen, un espacio de nombres o una interfaz. Para obtener más información, vea Contextos de declaración y Niveles de acceso predeterminados.
Las constantes locales (dentro de un procedimiento) tienen como valor predeterminado el acceso público y no se pueden usar modificadores de acceso en ellas. Las constantes de miembro de clase y módulo (fuera de cualquier procedimiento) tienen como valor predeterminado el acceso privado y las constantes de miembro de estructura tienen como valor predeterminado el acceso público. Puede ajustar sus niveles de acceso con los modificadores de acceso.
Reglas
Contexto de declaración. Una constante declarada en el nivel de módulo, fuera de cualquier procedimiento, es una constante miembro; es un miembro de la clase, estructura o módulo que lo declara.
Una constante declarada en el nivel de procedimiento es una constante local; es local para el procedimiento o bloque que lo declara.
Atributos. Solo puede aplicar atributos a constantes miembro, no a constantes locales. Un atributo contribuye a la información a los metadatos del ensamblado, que no es significativo para el almacenamiento temporal, como las constantes locales.
Modificadores. De forma predeterminada, todas las constantes son
Shared,StaticyReadOnly. No puede usar ninguna de estas palabras clave al declarar una constante.En el nivel de procedimiento, no puede usar
Shadowsni ningún modificador de acceso para declarar constantes locales.Varias constantes. Puede declarar varias constantes en la misma instrucción de declaración, especificando la
constantnameparte para cada una. Varias constantes están separadas por comas.
Reglas de tipo de datos
Tipos de datos. La
Constinstrucción puede declarar el tipo de datos de una variable. Puede especificar cualquier tipo de datos o el nombre de una enumeración.Tipo predeterminado. Si no especifica
datatype, la constante toma el tipo de datos deinitializer. Si especifica ydatatypeinitializer, el tipo de datos deinitializerdebe convertirse endatatype. Si ni estádatatypeinitializerpresente, el tipo de datos tieneObjectcomo valor predeterminado .Tipos diferentes. Puede especificar diferentes tipos de datos para diferentes constantes mediante una cláusula independiente
Aspara cada variable que declare. Sin embargo, no se pueden declarar varias constantes para que sean del mismo tipo mediante una cláusula comúnAs.Inicialización. Debe inicializar el valor de cada constante en
constantlist. Se usainitializerpara proporcionar una expresión que se va a asignar a la constante. La expresión puede ser cualquier combinación de literales, otras constantes que ya están definidas y miembros de enumeración que ya están definidos. Puede usar operadores aritméticos y lógicos para combinar estos elementos.No se pueden usar variables ni funciones en
initializer. Sin embargo, puede usar palabras clave de conversión comoCByteyCShort. También puede usarAscWsi lo llama con una constanteStringoCharargumento, ya que se puede evaluar en tiempo de compilación.
Comportamiento
Ámbito. Solo se puede acceder a las constantes locales desde su procedimiento o bloque. Las constantes miembro son accesibles desde cualquier lugar dentro de su clase, estructura o módulo.
Calificación. El código fuera de una clase, estructura o módulo debe calificar el nombre de una constante de miembro con el nombre de esa clase, estructura o módulo. El código fuera de un procedimiento o bloque no puede hacer referencia a ninguna constante local dentro de ese procedimiento o bloque.
Ejemplo 1
En el ejemplo siguiente se usa la Const instrucción para declarar constantes para su uso en lugar de valores literales.
' The following statements declare constants.
Const maximum As Long = 459
Public Const helpString As String = "HELP"
Private Const startValue As Integer = 5
Ejemplo 2
Si define una constante con tipo Objectde datos , el compilador de Visual Basic le proporciona el tipo de initializer, en lugar de Object. En el ejemplo siguiente, la constante naturalLogBase tiene el tipo Decimalen tiempo de ejecución .
Const naturalLogBase As Object = CDec(2.7182818284)
MsgBox("Run-time type of constant naturalLogBase is " &
naturalLogBase.GetType.ToString())
En el ejemplo anterior se usa el ToString método en el Type objeto devuelto por el operador GetType, porque Type no se puede convertir a String mediante CStr.