Const 문(Visual Basic)Const Statement (Visual Basic)

선언 하 고 하나 이상의 상수를 정의 합니다.Declares and defines one or more constants.

구문Syntax

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

요소Parts

attributelist
선택 사항입니다.Optional. 이 문에서 선언 된 모든 상수에 적용 되는 특성의 목록입니다.List of attributes that apply to all the constants declared in this statement. 참조 특성 목록 꺾쇠 괄호에서 ("<"및">").See Attribute List in angle brackets ("<" and ">").

accessmodifier
선택 사항입니다.Optional. 이러한 상수에 액세스할 수 있는 코드를 지정 하려면이 사용 합니다.Use this to specify what code can access these constants. 공용, Protected, Friend, Protected Friend, 개인, 또는 Private Protected합니다.Can be Public, Protected, Friend, Protected Friend, Private, or Private Protected.

Shadows
선택 사항입니다.Optional. 이 사용 하 여 다시 선언 하 고 기본 클래스의 프로그래밍 요소를 숨깁니다.Use this to redeclare and hide a programming element in a base class. 참조 그림자합니다.See Shadows.

constantlist
필수 요소.Required. 이 문에서 선언 되는 상수의 목록입니다.List of constants being declared in this statement.

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

constant에는 다음과 같은 구문과 요소가 있습니다.Each constant has the following syntax and parts:

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

파트Part 설명Description
constantname 필수 요소.Required. 상수의 이름입니다.Name of the constant. Declared Element Names을 참조하세요.See Declared Element Names.
datatype 필요한 경우 Option StrictOn합니다.Required if Option Strict is On. 데이터 형식 상수입니다.Data type of the constant.
initializer 필수 요소.Required. 컴파일 시 계산 되 고 상수에 할당 되는 식입니다.Expression that is evaluated at compile time and assigned to the constant.

설명Remarks

응용 프로그램에서 변경 되지 않는 값을 해야 하는 경우에 명명 된 상수를 정의할 수 있으며 리터럴 값 대신 사용할 수 있습니다.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. 이름 값에 비해 기억 하기 쉽습니다.A name is easier to remember than a value. 상수를 한 번만 정의 하 고 코드에서이 여러 위치에서 사용할 수 있습니다.You can define the constant just once and use it in many places in your code. 이후 버전에서는 값을 재정의 해야 하는 경우는 Const 문을 변경 해야 할 유일한 위치입니다.If in a later version you need to redefine the value, the Const statement is the only place you need to make a change.

사용할 수 있습니다 Const 모듈 또는 프로시저 수준 에서만.You can use Const only at module or procedure level. 즉, 합니다 선언 컨텍스트 변수에 클래스, 구조체, 모듈, 프로시저 또는 블록 이어야 하며 원본 파일, 네임 스페이스 또는 인터페이스 수는 없습니다.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. 자세한 내용은 선언 컨텍스트 및 기본 액세스 수준을 참조하세요.For more information, see Declaration Contexts and Default Access Levels.

공용 액세스를 기본 프로시저의 경우) (내의 로컬 상수에 액세스 한정자를 사용할 수 없습니다.Local constants (inside a procedure) default to public access, and you cannot use any access modifiers on them. 클래스와 모듈 멤버 (외부 프로시저) 상수 기본적으로 개인 액세스 및 구조체 멤버 상수는 기본적으로 공용 액세스 합니다.Class and module member constants (outside any procedure) default to private access, and structure member constants default to public access. 액세스 한정자를 사용 하 여 해당 액세스 수준을 조정할 수 있습니다.You can adjust their access levels with the access modifiers.

규칙Rules

  • 선언 컨텍스트입니다.Declaration Context. 모든 프로시저 외부 모듈 수준에서 선언 된 상수는 멤버 상수, 클래스, 구조체의 멤버인 또는 선언 하는 모듈입니다.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.

    프로시저 수준에서 선언 된 상수는를 지역 상수; 프로시저 또는 블록을 선언한 로컬 것입니다.A constant declared at procedure level is a local constant; it is local to the procedure or block that declares it.

  • 특성입니다.Attributes. 지역 상수 아니라 멤버 상수에만 특성을 적용할 수 있습니다.You can apply attributes only to member constants, not to local constants. 특성 지역 상수와 같은 임시 저장소에 의미가 없는 어셈블리의 메타 데이터에 대 한 정보를 제공 합니다.An attribute contributes information to the assembly's metadata, which is not meaningful for temporary storage such as local constants.

  • 한정자입니다.Modifiers. 기본적으로 모든 상수는 Shared하십시오 Static, 및 ReadOnly합니다.By default, all constants are Shared, Static, and ReadOnly. 상수를 선언 하는 경우 이러한 키워드를 사용할 수 없습니다.You cannot use any of these keywords when declaring a constant.

    프로시저 수준에서 사용할 수 없습니다 Shadows 또는 액세스 한정자를 지역 상수 선언 합니다.At procedure level, you cannot use Shadows or any access modifiers to declare local constants.

  • 여러 상수입니다.Multiple Constants. 동일한 선언문에서 여러 개의 상수를 선언할 수 있습니다 지정 하는 constantname 각각에 대 한 부분입니다.You can declare several constants in the same declaration statement, specifying the constantname part for each one. 여러 상수는 쉼표로 구분 됩니다.Multiple constants are separated by commas.

데이터 형식 규칙Data Type Rules

  • 데이터 형식입니다.Data Types. Const 문은 데이터 형식의 변수를 선언할 수 있습니다.The Const statement can declare the data type of a variable. 모든 데이터 형식이 나 열거형의 이름을 지정할 수 있습니다.You can specify any data type or the name of an enumeration.

  • 기본 형식입니다.Default Type. 지정 하지 않는 경우 datatype, 상수는 데이터 형식의 initializer합니다.If you do not specify datatype, the constant takes the data type of initializer. 둘 다 지정 하는 경우 datatype 하 고 initializer, 데이터 형식 initializer 변환할 수 있어야 합니다 datatype합니다.If you specify both datatype and initializer, the data type of initializer must be convertible to datatype. 모두 datatypeinitializer 가 있는 경우 데이터 형식이 기본값으로 Object합니다.If neither datatype nor initializer is present, the data type defaults to Object.

  • 다른 형식입니다.Different Types. 별도 사용 하 여 서로 다른 데이터 형식이 서로 다른 상수를 지정할 수 있습니다 As 선언 하는 각 변수에 대 한 절.You can specify different data types for different constants by using a separate As clause for each variable you declare. 그러나 일반적인 사용 하 여 동일한 형식으로 여러 상수를 선언할 수 없습니다 As 절.However, you cannot declare several constants to be of the same type by using a common As clause.

  • 초기화 합니다.Initialization. 모든 상수 값을 초기화 해야 constantlist합니다.You must initialize the value of every constant in constantlist. 사용할 initializer 상수에 할당할 식을 제공 합니다.You use initializer to supply an expression to be assigned to the constant. 식에는 리터럴, 이미 정의 되어 있는 다른 상수 및 이미 정의 된 열거형 멤버의 조합일 수 있습니다.The expression can be any combination of literals, other constants that are already defined, and enumeration members that are already defined. 이러한 요소를 결합 하 여 산술 및 논리 연산자를 사용할 수 있습니다.You can use arithmetic and logical operators to combine such elements.

    변수 또는 함수에서 사용할 수 없습니다 initializer합니다.You cannot use variables or functions in initializer. 와 같은 변환 키워드를 사용할 수는 있지만 CByteCShort입니다.However, you can use conversion keywords such as CByte and CShort. 사용할 수도 있습니다 AscW 상수를 사용 하 여 호출 하는 경우 String 또는 Char 인수를 컴파일 타임에 평가할 수 있는 때문입니다.You can also use AscW if you call it with a constant String or Char argument, since that can be evaluated at compile time.

동작Behavior

  • 범위입니다.Scope. 지역 상수는 해당 프로시저 또는 블록 내 에서만 액세스할 수 있습니다.Local constants are accessible only from within their procedure or block. 상수 멤버는 클래스, 구조체 또는 모듈 내의 모든 위치에서 액세스할 수 있습니다.Member constants are accessible from anywhere within their class, structure, or module.

  • 정규화 합니다.Qualification. 코드 클래스 이외에 구조체 또는 모듈 이름을 한 정해야 멤버 상수의 해당 클래스, 구조체 또는 모듈의 이름입니다.Code outside a class, structure, or module must qualify a member constant's name with the name of that class, structure, or module. 코드 외부 프로시저 또는 블록을 해당 프로시저 또는 블록 내에 있는 로컬 상수를 참조할 수 없습니다.Code outside a procedure or block cannot refer to any local constants within that procedure or block.

예제Example

다음 예제에서는 Const 문을 리터럴 값 대신 사용 하 여 상수를 선언 합니다.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

예제Example

데이터 형식을 사용 하 여 상수를 정의 하는 경우 Object, Visual Basic 컴파일러의 형식을 제공 initializer를 대신 Object합니다.If you define a constant with data type Object, the Visual Basic compiler gives it the type of initializer, instead of Object. 다음 예제에서는 상수 naturalLogBase 런타임 형식이 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())

앞의 예제에서는 ToString 메서드를 Type 에서 반환 된 개체를 GetType 연산자이므로 Type 변환할 수 없습니다 String 를 사용 하 여 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.

참고자료See also