Instrucción Const (Visual Basic)Const Statement (Visual Basic)

Declara y define una o más constantes.Declares and defines one or more constants.

SintaxisSyntax

[ <attributelist> ] [ accessmodifier ] [ Shadows ]
Const constantlist

PartesParts

attributelist
Opcional.Optional. Lista de atributos que se aplican a todas las constantes declaradas en esta instrucción.List of attributes that apply to all the constants declared in this statement. Vea lista de atributos entre corchetes angulares (" < " y " > ").See Attribute List in angle brackets ("<" and ">").

accessmodifier
Opcional.Optional. Úselo para especificar qué código puede tener acceso a estas constantes.Use this to specify what code can access these constants. Puede ser Public, Protected, Friend, Protected Friend, Privateo Private Protected.Can be Public, Protected, Friend, Protected Friend, Private, or Private Protected.

Shadows
Opcional.Optional. Use esto para volver a declarar y ocultar un elemento de programación en una clase base.Use this to redeclare and hide a programming element in a base class. Vea Shadows.See Shadows.

constantlist
Necesario.Required. Lista de constantes que se declaran en esta instrucción.List of constants being declared in this statement.

constant [ , constant ... ]constant [ , constant ... ]

Cada constant tiene la sintaxis y las partes siguientes:Each constant has the following syntax and parts:

constantname [ As datatype ] = initializerconstantname [ As datatype ] = initializer

PartePart DescripciónDescription
constantname Necesario.Required. Nombre de la constante.Name of the constant. Vea Declared Element Names.See Declared Element Names.
datatype Obligatorio si Option Strict es On .Required if Option Strict is On. Tipo de datos de la constante.Data type of the constant.
initializer Necesario.Required. Expresión que se evalúa en tiempo de compilación y se asigna a la constante.Expression that is evaluated at compile time and assigned to the constant.

ObservacionesRemarks

Si tiene un valor que nunca cambia en la aplicación, puede definir una constante con nombre y utilizarla en lugar de un valor literal.If you have a value that never changes in your application, you can define a named constant and use it in place of a literal value. Un nombre es más fácil de recordar que un valor.A name is easier to remember than a value. Puede definir la constante una sola vez y usarla en muchos lugares del código.You can define the constant just once and use it in many places in your code. Si en una versión posterior necesita volver a definir el valor, la Const instrucción es el único lugar que necesita para realizar un cambio.If in a later version you need to redefine the value, the Const statement is the only place you need to make a change.

Solo se puede usar Const en el nivel de módulo o de procedimiento.You can use Const only at module or procedure level. Esto significa que el contexto de la declaración de una variable debe ser una clase, una estructura, un módulo, un procedimiento o un bloque, y no puede ser un archivo de código fuente, un espacio de nombres o una interfaz.This means the declaration context for a variable must be a class, structure, module, procedure, or block, and cannot be a source file, namespace, or interface. Para obtener más información, vea Declaration Contexts and Default Access Levels (Contextos de declaración y niveles de acceso predeterminados).For more information, see Declaration Contexts and Default Access Levels.

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.Local constants (inside a procedure) default to public access, and you cannot use any access modifiers on them. 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.Class and module member constants (outside any procedure) default to private access, and structure member constants default to public access. Los niveles de acceso se pueden ajustar con los modificadores de acceso.You can adjust their access levels with the access modifiers.

ReglasRules

  • Contexto de declaración.Declaration Context. Una constante declarada en el nivel de módulo, fuera de cualquier procedimiento, es una constante de miembro; es miembro de la clase, estructura o módulo que lo declara.A constant declared at module level, outside any procedure, is a member constant; it is a member of the class, structure, or module that declares it.

    Una constante declarada en el nivel de procedimiento es una constante local; es local para el procedimiento o bloque que lo declara.A constant declared at procedure level is a local constant; it is local to the procedure or block that declares it.

  • Sus.Attributes. Solo puede aplicar atributos a constantes de miembro, no a constantes locales.You can apply attributes only to member constants, not to local constants. Un atributo contribuye a la información en los metadatos del ensamblado, lo que no es significativo para el almacenamiento temporal, como las constantes locales.An attribute contributes information to the assembly's metadata, which is not meaningful for temporary storage such as local constants.

  • Modificadores.Modifiers. De forma predeterminada, todas las constantes son Shared , Static y ReadOnly .By default, all constants are Shared, Static, and ReadOnly. No se puede usar ninguna de estas palabras clave al declarar una constante.You cannot use any of these keywords when declaring a constant.

    En el nivel de procedimiento, no se puede usar Shadows o cualquier modificador de acceso para declarar constantes locales.At procedure level, you cannot use Shadows or any access modifiers to declare local constants.

  • Varias constantes.Multiple Constants. Puede declarar varias constantes en la misma instrucción de declaración, especificando la constantname parte para cada una de ellas.You can declare several constants in the same declaration statement, specifying the constantname part for each one. Varias constantes se separan mediante comas.Multiple constants are separated by commas.

Reglas de tipo de datosData Type Rules

  • Tipos de datos.Data Types. La Const instrucción puede declarar el tipo de datos de una variable.The Const statement can declare the data type of a variable. Puede especificar cualquier tipo de datos o el nombre de una enumeración.You can specify any data type or the name of an enumeration.

  • Tipo predeterminado.Default Type. Si no especifica datatype , la constante toma el tipo de datos de initializer .If you do not specify datatype, the constant takes the data type of initializer. Si especifica datatype y initializer , el tipo de datos de initializer debe ser convertible a datatype .If you specify both datatype and initializer, the data type of initializer must be convertible to datatype. Si ni datatype ni initializer están presentes, el tipo de datos tiene como valor predeterminado Object .If neither datatype nor initializer is present, the data type defaults to Object.

  • Tipos diferentes.Different Types. Puede especificar tipos de datos diferentes para las diferentes constantes mediante el uso de una As cláusula independiente para cada variable que declare.You can specify different data types for different constants by using a separate As clause for each variable you declare. Sin embargo, no se pueden declarar varias constantes para que sean del mismo tipo mediante el uso de una As cláusula común.However, you cannot declare several constants to be of the same type by using a common As clause.

  • Inicial.Initialization. Debe inicializar el valor de cada constante en constantlist .You must initialize the value of every constant in constantlist. Se usa initializer para proporcionar una expresión que se va a asignar a la constante.You use initializer to supply an expression to be assigned to the constant. 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.The expression can be any combination of literals, other constants that are already defined, and enumeration members that are already defined. Puede usar operadores aritméticos y lógicos para combinar estos elementos.You can use arithmetic and logical operators to combine such elements.

    No se pueden usar variables ni funciones en initializer .You cannot use variables or functions in initializer. Sin embargo, puede usar palabras clave de conversión como CByte y CShort .However, you can use conversion keywords such as CByte and CShort. También puede usar AscW si lo llama con una constante o un String Char argumento, ya que se puede evaluar en tiempo de compilación.You can also use AscW if you call it with a constant String or Char argument, since that can be evaluated at compile time.

ComportamientoBehavior

  • Ámbito.Scope. Solo se puede tener acceso a las constantes locales desde el procedimiento o el bloque.Local constants are accessible only from within their procedure or block. Las constantes de miembro son accesibles desde cualquier lugar dentro de su clase, estructura o módulo.Member constants are accessible from anywhere within their class, structure, or module.

  • Evaluación.Qualification. 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.Code outside a class, structure, or module must qualify a member constant's name with the name of that class, structure, or module. El código fuera de un procedimiento o bloque no puede hacer referencia a ninguna constante local dentro de ese procedimiento o bloque.Code outside a procedure or block cannot refer to any local constants within that procedure or block.

EjemploExample

En el ejemplo siguiente se usa la Const instrucción para declarar constantes que se usan en lugar de los valores literales.The following example uses the Const statement to declare constants for use in place of literal values.

' The following statements declare constants. 
Const maximum As Long = 459
Public Const helpString As String = "HELP"
Private Const startValue As Integer = 5

EjemploExample

Si define una constante con el tipo Object de datos, el compilador Visual Basic le asigna el tipo de initializer , en lugar de Object .If you define a constant with data type Object, the Visual Basic compiler gives it the type of initializer, instead of Object. En el ejemplo siguiente, la constante naturalLogBase tiene el tipo en tiempo de ejecución Decimal .In the following example, the constant naturalLogBase has the run-time type Decimal.

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 en String mediante CStr .The preceding example uses the ToString method on the Type object returned by the GetType Operator, because Type cannot be converted to String using CStr.

Vea tambiénSee also