Static(Visual Basic)

하나 이상의 선언된 지역 변수가 계속 존재하고 선언된 프로시저가 종료된 후에도 최신 값을 보존하도록 지정합니다.

설명

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

규칙

  • 선언 컨텍스트. 지역 변수에만 Static을 사용할 수 있습니다. 이는 Static 변수에 대한 선언 컨텍스트가 프로시저 또는 프로시저의 블록이어야 하며 원본 파일, 네임스페이스, 클래스, 구조체 또는 모듈이 될 수 없음을 의미합니다.

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

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

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

동작

Shared 프로시저에서 정적 변수를 선언하면 전체 애플리케이션에 대해 하나의 정적 변수 복사본만 사용할 수 있습니다. 클래스의 인스턴스를 가리키는 변수가 아닌 클래스 이름을 사용하여 Shared 프로시저를 호출합니다.

Shared가 아닌 프로시저에서 정적 변수를 선언하는 경우 클래스의 각 인스턴스에 대해 하나의 변수 복사본만 사용할 수 있습니다. 클래스의 특정 인스턴스를 가리키는 변수를 사용하여 비공유 프로시저를 호출합니다.

예시

다음 예에서는 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 문

참고 항목