Static(Visual Basic)Static (Visual Basic)

선언 된 지역 변수를 하나 이상 유지 하 고 선언 된 프로시저가 종료 된 후에 최신 값을 유지 하도록 지정 합니다.Specifies that one or more declared local variables are to continue to exist and retain their latest values after termination of the procedure in which they are declared.


일반적으로 프로시저의 지역 변수는 프로시저가 중지 되는 즉시 존재 하지 않게 됩니다.Normally, a local variable in a procedure ceases to exist as soon as the procedure stops. 정적 변수는 계속 존재 하며 최신 값을 유지 합니다.A static variable continues to exist and retains its most recent value. 다음에 코드가 프로시저를 호출 하면 변수가 다시 초기화 되지 않고 사용자가 할당 한 최신 값을 유지 합니다.The next time your code calls the procedure, the variable is not reinitialized, and it still holds the latest value that you assigned to it. 정적 변수는 정의 된 클래스 또는 모듈의 수명 동안 계속 존재 합니다.A static variable continues to exist for the lifetime of the class or module that it is defined in.


  • 선언 컨텍스트.Declaration Context. Static로컬 변수에만 사용할 수 있습니다.You can use Static only on local variables. 즉, 변수에 대 한 선언 컨텍스트는 프로시저 Static 또는 프로시저의 블록 이어야 하며 소스 파일, 네임 스페이스, 클래스, 구조체 또는 모듈 일 수 없습니다.This means the declaration context for a Static variable must be a procedure or a block in a procedure, and it cannot be a source file, namespace, class, structure, or module.

    Static구조 프로시저 내에서는를 사용할 수 없습니다.You cannot use Static inside a structure procedure.

  • 지역 변수의 데이터 형식은 Static 유추할 수 없습니다.The data types of Static local variables cannot be inferred. 자세한 내용은 지역 형식 유추를 참조 하세요.For more information, see Local Type Inference.

  • 결합된 한정자.Combined Modifiers. Static ReadOnly Shadows 동일한 선언에서, 또는를 함께 지정할 수 없습니다 Shared .You cannot specify Static together with ReadOnly, Shadows, or Shared in the same declaration.


프로시저에서 정적 변수를 선언 하는 경우 Shared 전체 응용 프로그램에 대해 정적 변수의 복사본을 하나만 사용할 수 있습니다.When you declare a static variable in a Shared procedure, only one copy of the static variable is available for the whole application. 클래스 Shared 의 인스턴스를 가리키는 변수가 아니라 클래스 이름을 사용 하 여 프로시저를 호출 합니다.You call a Shared procedure by using the class name, not a variable that points to an instance of the class.

프로시저가 아닌 프로시저에서 정적 변수를 선언 하는 경우 Shared 클래스의 각 인스턴스에 대해 변수의 복사본을 하나만 사용할 수 있습니다.When you declare a static variable in a procedure that isn't Shared, only one copy of the variable is available for each instance of the class. 클래스의 특정 인스턴스를 가리키는 변수를 사용 하 여 비공유 프로시저를 호출 합니다.You call a non-shared procedure by using a variable that points to a specific instance of the class.


다음 예에서는 Static의 사용법을 보여줍니다.The following example demonstrates the use of Static.

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

Static변수는 totalSales 한 번만 0으로 초기화 됩니다.The Static variable totalSales is initialized to 0 only one time. 를 입력할 때마다 updateSales 에서 totalSales 가장 최근의 값을 계산 합니다.Each time that you enter updateSales, totalSales still has the most recent value that you calculated for it.

Static이 컨텍스트에서는 한정자를 사용할 수 있습니다.The Static modifier can be used in this context:

Dim 문Dim Statement

참조See also