Set 문(Visual Basic)

속성에 값을 할당하는 데 사용하는 Set 속성 프로시저를 선언합니다.

[ <attributelist> ] [ accessmodifier ] Set (ByVal value [ As datatype ])
    [ statements ]
End Set

구성 요소

  • attributelist
    선택적 요소로서, 특성 목록을 참조하십시오.

  • accessmodifier
    선택적 요소이며 이 속성의 Get 및 Set 문 중 하나에서만 사용할 수 있습니다. 다음 중 하나일 수 있습니다.

    Visual Basic의 액세스 수준를 참조하십시오.

  • value
    필수적 요소로서, 속성에 대한 새 값을 포함하는 매개 변수입니다.

  • datatype
    Option Strict가 On이면 필수적 요소입니다. value 매개 변수의 데이터 형식입니다. 지정된 데이터 형식이 이 Set 문이 선언된 속성의 데이터 형식과 같아야 합니다.

  • statements
    선택적 요소로서, Set 속성 프로시저를 호출할 때 실행되는 하나 이상의 문입니다.

  • End Set
    필수적 요소로서, Set 속성 프로시저의 정의를 종료합니다.

설명

ReadOnly로 표시되어 있지 않은 이상 모든 속성에 Set 속성 프로시저가 있어야 합니다. Set 프로시저는 속성 값을 설정하는 데 사용됩니다.

Visual Basic은 할당문이 속성에 저장될 값을 제공할 때 속성의 Set 프로시저를 자동으로 호출합니다.

Visual Basic은 속성을 할당하는 동안 Set 프로시저에 매개 변수를 전달합니다. Set에 대한 매개 변수를 지정하지 않으면 IDE(통합 개발 환경)에서 value라는 암시적 매개 변수를 사용합니다. 이 매개 변수에는 속성에 할당할 값이 포함되어 있습니다. 일반적으로 이 값을 전용 지역 변수에 저장하고 Get 프로시저가 호출될 때마다 이 값을 반환합니다.

속성 선언 본문의 Property 문과 End Property 문 사이에 속성의 Get 및 Set 프로시저만 포함할 수 있습니다. 이러한 프로시저 외에는 아무 것도 저장할 수 없습니다. 특히 속성의 현재 값은 저장할 수 없습니다. 이 값을 속성 프로시저 중 하나의 내부에 저장하면 다른 속성 프로시저가 이 값에 액세스할 수 없으므로 이 값을 속성 외부에 저장해야 합니다. 일반적으로 속성과 동일한 수준에서 선언된 Private(Visual Basic) 변수에 값을 저장합니다. Set 프로시저는 해당 프로시저가 적용되는 속성 내에 정의해야 합니다.

Set 문에 accessmodifier를 사용하지 않는 한 Set 프로시저는 기본적으로 포함하는 해당 속성의 액세스 수준입니다.

규칙

  • 혼합 액세스 수준. 읽기/쓰기 속성을 정의하는 경우 Get 또는 Set 프로시저 중 하나에 다른 액세스 수준을 지정할 수 있지만 두 프로시저 모두에 다른 액세스 수준을 지정할 수는 없습니다. 이렇게 하려면 프로시저 액세스 수준이 속성의 액세스 수준보다 제한적이어야 합니다. 예를 들어 속성이 Friend로 선언된 경우 Set 프로시저를 Public이 아닌 Private으로 선언할 수 있습니다.

    WriteOnly 속성을 정의하는 경우 Set 프로시저는 전체 속성을 나타냅니다. Set에 다른 액세스 수준을 선언할 수 없습니다. 다른 액세스 수준을 선언하면 속성에 두 가지 액세스 수준이 설정됩니다.

동작

  • 속성 프로시저에서 반환. Set 프로시저가 호출 코드로 반환되면 저장할 값을 제공한 문 다음에서 실행이 계속됩니다.

    Set 속성 프로시저는 Return 문(Visual Basic) 또는 Exit 문(Visual Basic)을 사용하여 반환할 수 있습니다.

    Exit Property와 Return 문은 속성 프로시저를 바로 끝냅니다. 프로시저 내의 임의의 위치에 여러 개의 Exit Property 및 Return 문을 사용할 수 있으며 Exit Property 문과 Return 문을 혼합하여 사용할 수 있습니다.

예제

다음 예제에서는 Set 문을 사용하여 속성 값을 설정합니다.

Class propClass
    Private propVal As Integer
    Property prop1() As Integer
        Get
            Return propVal
        End Get
        Set(ByVal value As Integer)
            propVal = value
        End Set
    End Property
End Class

참고 항목

참조

Get 문

Property 문

Sub 문(Visual Basic)

개념

Property 프로시저(Visual Basic)