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. Public, protected, Friend, protected friend, private또는 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 Strict On경우 필수입니다.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. 클래스 및 모듈 멤버 상수 (프로시저 외부)는 기본적으로 private access로, 구조체 멤버 상수는 기본적으로 공용 액세스로 사용 됩니다.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, StaticReadOnly입니다.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. datatypeinitializer를 모두 지정 하는 경우 initializer의 데이터 형식을 datatype로 변환할 수 있어야 합니다.If you specify both datatype and initializer, the data type of initializer must be convertible to datatype. datatype 또는 initializer 모두 없는 경우에는 데이터 형식이 기본적으로 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. 상수 String 또는 Char 인수를 사용 하 여 호출 하는 경우 컴파일 시간에 계산할 수 있기 때문에 AscW를 사용할 수도 있습니다.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 컴파일러는 Object대신 initializer형식을 제공 합니다.If you define a constant with data type Object, the Visual Basic compiler gives it the type of initializer, instead of Object. 다음 예제에서는 상수 naturalLogBaseDecimal런타임 형식이 있습니다.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())

이전 예제에서는 CStr를 사용 하 여 String로 변환할 수 Type 없기 때문에 GetType 연산자에서 반환 하는 Type 개체에 대해 ToString 메서드를 사용 합니다.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