Property Statement

속성의 이름과 속성 값을 저장하고 검색하는 데 사용되는 속성 프로시저를 선언합니다.

Syntax

[ <attributelist> ] [ Default ] [ accessmodifier ]
[ propertymodifiers ] [ Shared ] [ Shadows ] [ ReadOnly | WriteOnly ] [ Iterator ]
Property name ( [ parameterlist ] ) [ As returntype ] [ Implements implementslist ]
    [ <attributelist> ] [ accessmodifier ] Get
        [ statements ]
    End Get
    [ <attributelist> ] [ accessmodifier ] Set ( ByVal value As returntype [, parameterlist ] )
        [ statements ]
    End Set
End Property
- or -
[ <attributelist> ] [ Default ] [ accessmodifier ]
[ propertymodifiers ] [ Shared ] [ Shadows ] [ ReadOnly | WriteOnly ]
Property name ( [ parameterlist ] ) [ As returntype ] [ Implements implementslist ]

부분

  • attributelist

    (선택 사항) 이 속성 또는 GetSet 프로시저에 적용되는 특성 목록입니다. 특성 목록을 참조하세요.

  • Default

    (선택 사항) 이 속성이 정의된 클래스 또는 구조체의 기본 속성임을 지정합니다. 기본 속성은 매개 변수를 허용해야 하며 속성 이름을 지정하지 않고 설정하고 검색할 수 있습니다. 속성을 로 Default선언하는 경우 속성 또는 속성 프로시저 중 하나에서 를 사용할 Private 수 없습니다.

  • accessmodifier

    문 및 Property 및 문 중 하나 이상에서 GetSet 선택 사항입니다. 다음 중 하나일 수 있습니다.

    Access levels in Visual Basic을 참조하세요.

  • propertymodifiers

    (선택 사항) 다음 중 하나일 수 있습니다.

  • Shared

    (선택 사항) 공유를 참조하세요.

  • Shadows

    (선택 사항) 그림자를 참조하세요.

  • ReadOnly

    (선택 사항) ReadOnly를 참조하세요.

  • WriteOnly

    (선택 사항) WriteOnly를 참조하세요.

  • Iterator

    (선택 사항) 반복기를 참조하세요.

  • name

    필수 요소. 속성의 이름입니다. Declared Element Names을 참조하세요.

  • parameterlist

    (선택 사항) 이 속성의 매개 변수를 나타내는 지역 변수 이름 목록 및 프로시저의 가능한 추가 매개 변수입니다 Set . 매개 변수 목록을 참조하세요.

  • returntype

    필요한 경우 Option StrictOn합니다. 이 속성에서 반환된 값의 데이터 형식입니다.

  • Implements

    (선택 사항) 이 속성이 하나 이상의 속성을 구현한다는 것을 나타내며, 각 속성은 이 속성의 포함하는 클래스 또는 구조체에 의해 구현된 인터페이스에 정의되어 있습니다. 구현 문을 참조하세요.

  • implementslist

    Implements가 제공된 경우 필수입니다. 구현되는 속성 목록입니다.

    implementedproperty [ , implementedproperty ... ]

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

    interface.definedname

    부분 Description
    interface 필수 요소. 이 속성의 포함하는 클래스 또는 구조체에 의해 구현된 인터페이스의 이름입니다.
    definedname 필수 요소. 속성이 에 interface정의된 이름입니다.
  • Get

    (선택 사항) 속성이 로 표시된 ReadOnly경우 필수입니다. 속성 값을 Get 반환하는 데 사용되는 속성 프로시저를 시작합니다. 문은 Get자동 구현 속성과 함께 사용되지 않습니다.

  • statements

    (선택 사항) 또는 Set 프로시저 내에서 Get 실행할 문의 블록입니다.

  • End Get

    속성 프로시저를 Get 종료합니다.

  • Set

    (선택 사항) 속성이 로 표시된 WriteOnly경우 필수입니다. 속성 값을 Set 저장하는 데 사용되는 속성 프로시저를 시작합니다. 문은 Set자동 구현 속성과 함께 사용되지 않습니다.

  • End Set

    속성 프로시저를 Set 종료합니다.

  • End Property

    이 속성의 정의를 종료합니다.

설명

문은 Property 속성의 선언을 소개합니다. 속성에는 프로시저(읽기 전용), Set 프로시저(쓰기 전용) 또는 둘 다(읽기-쓰기)가 있을 Get 수 있습니다. 자동 구현 속성을 사용할 때 및 Set 프로시저를 생략 Get 할 수 있습니다. 자세한 내용은 자동으로 구현된 속성을 참조하세요.

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

기본적으로 속성은 공용 액세스를 사용합니다. 문의 액세스 한정자를 Property 사용하여 속성의 액세스 수준을 조정할 수 있으며, 필요에 따라 속성 프로시저 중 하나를 보다 제한적인 액세스 수준으로 조정할 수 있습니다.

Visual Basic은 속성 할당 중에 매개 변수를 프로시저에 Set 전달합니다. 에 대한 Set매개 변수를 제공하지 않으면 IDE(통합 개발 환경)는 라는 value암시적 매개 변수를 사용합니다. 이 매개 변수는 속성에 할당할 값을 보유합니다. 일반적으로 이 값을 프라이빗 지역 변수에 저장하고 프로시저가 Get 호출 될 때마다 반환합니다.

규칙

  • 혼합 액세스 수준. 읽기-쓰기 속성을 정의하는 경우 필요에 따라 또는 Set 프로시저에 Get 대해 다른 액세스 수준을 지정할 수 있지만 둘 다 지정할 수는 없습니다. 이렇게 하면 프로시저 액세스 수준이 속성의 액세스 수준보다 더 제한적이어야 합니다. 예를 들어 속성이 선언된 Friend경우 프로시저Private를 선언할 수 있지만 은 Set 선언할 수 없습니다Public.

    또는 속성을 정의하는 ReadOnly 경우 단일 속성 프로시저(Get 또는 Set각각)는 모든 속성을 WriteOnly 나타냅니다. 속성에 대해 두 개의 액세스 수준을 설정하므로 이러한 프로시저에 대해 다른 액세스 수준을 선언할 수 없습니다.

  • 반환 형식입니다. 문은 Property 반환되는 값의 데이터 형식을 선언할 수 있습니다. 모든 데이터 형식 또는 열거형, 구조체, 클래스 또는 인터페이스의 이름을 지정할 수 있습니다.

    를 지정 returntype하지 않으면 속성이 를 반환합니다 Object.

  • 구현. 이 속성이 키워드를 Implements 사용하는 경우 포함하는 클래스 또는 구조체에는 또는 Structure 문 바로 다음에 Class 문이 Implements 있어야 합니다. 문에는 Implementsimplementslist지정된 각 인터페이스가 포함되어야 합니다. 그러나 인터페이스가 (indefinedname)를 정의하는 Property 이름은 이 속성의 이름(name의 )과 같을 필요는 없습니다.

동작

  • 속성 프로시저에서 반환합니다. 또는 Set 프로시저가 Get 호출 코드로 돌아오면 호출된 문 다음에 문으로 실행을 계속합니다.

    Return 문은 Exit Property 속성 프로시저에서 즉시 종료됩니다. 모든 수의 Exit PropertyReturn 문은 프로시저의 아무 곳에나 나타날 수 있으며 및 Return 문을 혼합 Exit Property 할 수 있습니다.

  • 반환 값입니다. 프로시저에서 Get 값을 반환하려면 속성 이름에 값을 할당하거나 문에 Return 포함할 수 있습니다. 다음 예제에서는 반환 값을 속성 이름 quoteForTheDay 에 할당한 다음 문을 사용하여 Exit Property 반환합니다.

    Private quoteValue As String = "No quote assigned yet."
    
    ReadOnly Property QuoteForTheDay() As String
        Get
            QuoteForTheDay = quoteValue
            Exit Property
        End Get
    End Property
    

    에 값을 name할당하지 않고 를 사용하는 Exit Property 경우 프로시저는 Get 속성의 데이터 형식에 대한 기본값을 반환합니다.

    문은 Return 동시에 프로시저 반환 값을 할당 Get 하고 프로시저를 종료합니다. 다음 예에서는 이러한 방법을 보여 줍니다.

    Private quoteValue As String = "No quote assigned yet."
    
    ReadOnly Property QuoteForTheDay() As String
        Get
            Return quoteValue
        End Get
    End Property
    

예제

다음 예제에서는 클래스에서 속성을 선언합니다.

Class Class1
    ' Define a local variable to store the property value.
    Private propertyValue As String
    ' Define the property.
    Public Property Prop1() As String
        Get
            ' The Get property procedure is called when the value
            ' of a property is retrieved.
            Return propertyValue
        End Get
        Set(ByVal value As String)
            ' The Set property procedure is called when the value
            ' of a property is modified.  The value to be assigned
            ' is passed in the argument to Set.
            propertyValue = value
        End Set
    End Property
End Class

참조