다음을 통해 공유


Static(Visual Basic)

업데이트: 2007년 11월

하나 이상의 선언된 지역 변수는 해당 변수가 선언된 프로시저가 끝난 후에도 계속 존재하고 최신 값을 그대로 유지하도록 지정합니다.

설명

일반적으로 프로시저의 지역 변수는 프로시저가 중지되면 바로 소멸됩니다. 정적 변수는 계속 존재하며 최신 값을 그대로 유지합니다. 코드에서 프로시저를 다음에 호출할 때 변수는 다시 초기화되지 않고 해당 변수에 할당된 마지막 값을 그대로 유지합니다. 정적 변수는 정의된 클래스 또는 모듈의 수명 동안 계속 존재합니다.

규칙

  • **선언 컨텍스트.**Static은 지역 변수에서만 사용할 수 있습니다. 즉, Static 변수의 선언 컨텍스트는 프로시저이거나 프로시저 내부의 블록이어야 하며 소스 파일, 네임스페이스, 클래스, 구조체 또는 모듈일 수는 없습니다.

    Static은 구조체 프로시저에서는 사용할 수 없습니다.

  • Static 지역 변수의 데이터 형식은 유추할 수 없습니다. 자세한 내용은 지역 형식 유추를 참조하십시오.

  • 결합 한정자. 하나의 선언에서 Static을 ReadOnly, Shadows 또는 Shared와 함께 지정할 수 없습니다.

동작

지역 변수의 동작은 해당 변수가 Shared 프로시저에서 선언되었는지 여부에 따라 다릅니다. 프로시저가 Shared인 경우 모든 지역 변수가 자동으로 공유됩니다. 여기에는 Static 변수가 포함됩니다. 전체 응용 프로그램에 대해 이러한 변수의 복사본은 하나만 존재합니다. 클래스의 인스턴스를 가리키는 변수가 아니라 클래스 이름을 사용하여 Shared 프로시저를 호출합니다.

프로시저가 Shared가 아닌 경우 지역 변수는 인스턴스 변수입니다. 여기에는 Static 변수가 포함됩니다. 클래스의 각 인스턴스에 각 변수의 개별 복사본이 있습니다. 클래스의 특정 인스턴스를 가리키는 변수를 사용하여 공유되지 않는 프로시저를 호출합니다. 해당 인스턴스의 모든 변수는 다른 인스턴스의 이름이 같은 변수와 별개입니다. 따라서 다른 변수 값을 사용할 수 있습니다.

예제

다음 예제는 Static의 사용을 보여 줍니다.

Function updateSales(ByVal thisSale As Decimal) As Decimal
    Static totalSales As Decimal = 0
    totalSales += thisSale
    Return totalSales
End Function

Static 변수 totalSales는 0으로 한 번만 초기화됩니다. updateSales를 입력할 때마다 totalSales에는 가장 최근에 계산된 값이 유지됩니다.

Static 한정자는 다음 컨텍스트에서 사용할 수 있습니다.

Dim 문(Visual Basic)

참고 항목

개념

Visual Basic의 수명

Visual Basic의 변수 선언

지역 형식 유추

참조

Shadows

Shared(Visual Basic)

기타 리소스

구조체: 사용자 지정 데이터 형식

클래스의 이해