다음을 통해 공유


Const 문(Visual Basic)

하나 이상의 상수 선언 및 정의

문법

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

부분

attributelist
선택 사항입니다. 이 문에 선언된 모든 상수에 적용되는 특성 목록입니다. 꺾쇠 괄호("" 및 ">"<)의 특성 목록을 참조하세요.

accessmodifier
선택 사항입니다. 이를 사용하여 이러한 상수에 액세스할 수 있는 코드를 지정합니다. 공개, 보호됨, 친구, 보호된 친구, 개인 또는 개인 보호될 수 있습니다.

Shadows
선택 사항입니다. 이를 사용하여 기본 클래스에서 프로그래밍 요소를 다시 표시하고 숨깁니다. Shadows를 참조하세요.

constantlist
필수 사항입니다. 이 문에서 선언되는 상수 목록입니다.

constant [ , constant ... ]

constant에는 다음과 같은 구문과 요소가 있습니다.

constantname [ As datatype ] = initializer

부분 설명
constantname 필수 사항입니다. 상수의 이름입니다. 선언된 요소 이름을 참조하세요.
datatype Option StrictOn인 경우 필수입니다. 상수의 데이터 형식입니다.
initializer 필수 사항입니다. 컴파일 시간에 계산되고 상수에 할당되는 식입니다.

비고

애플리케이션에서 변경되지 않는 값이 있는 경우 명명된 상수는 정의하고 리터럴 값 대신 사용할 수 있습니다. 이름은 값보다 기억하기 쉽습니다. 상수를 한 번만 정의하고 코드의 여러 위치에서 사용할 수 있습니다. 이후 버전에서 값을 Const 다시 정의해야 하는 경우 문을 변경해야 하는 유일한 위치입니다.

모듈 또는 프로시저 수준에서만 사용할 Const 수 있습니다. 즉, 변수의 선언 컨텍스트 는 클래스, 구조체, 모듈, 프로시저 또는 블록이어야 하며 소스 파일, 네임스페이스 또는 인터페이스일 수 없습니다. 자세한 내용은 선언 컨텍스트 및 기본 액세스 수준을 참조하세요.

로컬 상수(프로시저 내부)는 기본적으로 공용 액세스로 설정되며, 해당 상수에 대한 액세스 한정자는 사용할 수 없습니다. 클래스 및 모듈 멤버 상수(프로시저 외부)는 기본적으로 프라이빗 액세스로, 구조체 멤버 상수는 기본적으로 공용 액세스로 설정됩니다. 액세스 한정자를 사용하여 액세스 수준을 조정할 수 있습니다.

규칙

  • 선언 컨텍스트입니다. 프로시저 외부의 모듈 수준에서 선언된 상수는 멤버 상수입니다. 클래스, 구조체 또는 선언하는 모듈의 멤버입니다.

    프로시저 수준에서 선언된 상수는 로컬 상수입니다. 선언하는 프로시저 또는 블록에 로컬입니다.

  • 특성. 로컬 상수가 아닌 멤버 상수에만 특성을 적용할 수 있습니다. 특성은 로컬 상수와 같은 임시 스토리지에 의미가 없는 어셈블리의 메타데이터에 정보를 제공합니다.

  • 한정자. 기본적으로 모든 상수는 Shared, StaticReadOnly. 상수 선언 시 이러한 키워드는 사용할 수 없습니다.

    프로시저 수준에서는 로컬 상수 선언을 사용하거나 액세스 한정자를 사용할 Shadows 수 없습니다.

  • 여러 상수입니다. 동일한 선언문에서 각 상수에 대한 파트를 지정하여 여러 상수를 constantname 선언할 수 있습니다. 여러 상수는 쉼표로 구분됩니다.

데이터 형식 규칙

  • 데이터 형식입니다. 문은 Const 변수의 데이터 형식을 선언할 수 있습니다. 모든 데이터 형식 또는 열거형의 이름을 지정할 수 있습니다.

  • 기본 형식입니다. 지정 datatype하지 않으면 상수는 .의 initializer데이터 형식을 사용합니다. 둘 다 datatype 지정하는 initializer경우 데이터 형식을 initializer 으로 변환할 수 datatype있어야 합니다. 둘 다 없는 datatypeinitializer 경우 데이터 형식은 기본적으로 .로 설정 Object됩니다.

  • 형식이 다릅니다. 선언하는 각 변수에 대해 별도의 As 절을 사용하여 서로 다른 상수에 대해 서로 다른 데이터 형식을 지정할 수 있습니다. 그러나 공통 As 절을 사용하여 여러 상수를 동일한 형식으로 선언할 수는 없습니다.

  • 초기화. 에서 모든 상수 constantlist의 값을 초기화해야 합니다. 상수에 할당할 식을 제공하는 데 사용합니다 initializer . 식은 리터럴, 이미 정의된 다른 상수 및 이미 정의된 열거형 멤버의 조합일 수 있습니다. 산술 연산자와 논리 연산자를 사용하여 이러한 요소를 결합할 수 있습니다.

    에서 변수 또는 함수를 initializer사용할 수 없습니다. 그러나 다음과 같은 CByteCShort변환 키워드를 사용할 수 있습니다. 컴파일 시간에 평가할 수 있으므로 상수 String 또는 Char 인수를 사용하여 호출하는 경우에도 사용할 AscW 수 있습니다.

행동

  • 범위 로컬 상수는 프로시저 또는 블록 내에서만 액세스할 수 있습니다. 멤버 상수는 해당 클래스, 구조 또는 모듈 내의 어디에서나 액세스할 수 있습니다.

  • 자격. 클래스, 구조체 또는 모듈 외부의 코드는 해당 클래스, 구조체 또는 모듈의 이름으로 멤버 상수의 이름을 한정해야 합니다. 프로시저 또는 블록 외부의 코드는 해당 프로시저 또는 블록 내의 로컬 상수는 참조할 수 없습니다.

예제 1

다음 예제에서는 문을 사용하여 Const 리터럴 값 대신 사용할 상수를 선언합니다.

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

예제 2

데이터 형식Object으로 상수 정의 하는 경우 Visual Basic 컴파일러는 대신의 initializerObject형식을 제공 합니다. 다음 예제에서 상수 naturalLogBase 에는 런타임 형식이 있습니다 Decimal.

Const naturalLogBase As Object = CDec(2.7182818284)
MsgBox("Run-time type of constant naturalLogBase is " &
    naturalLogBase.GetType.ToString())

위의 예제에서는 GetType 연산자가 반환한 개체에서 Type 메서드를 사용합니다ToString. 이 메서드는 사용CStr으로 변환 String 할 수 없기 때문 Type 입니다.

참고하십시오