다음을 통해 공유


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)