Set 문(Visual Basic)
속성에 값을 할당하는 데 사용되는 Set
속성 프로시저를 선언합니다.
구문
[ <attributelist> ] [ accessmodifier ] Set [([ByVal value [ As datatype ]])]
[ statements ]
End Set
부분
attributelist
선택 사항. 특성 목록을 참조하세요.
accessmodifier
이 속성의 Get
및 Set
문 중 최대 하나에 대한 선택 사항입니다. 다음 중 하나일 수 있습니다.
Access levels in Visual Basic을 참조하세요.
value
선택 사항. 속성의 새 값을 포함하는 매개 변수입니다. 지정되지 않은 경우(즉, 매개 변수 목록이 없거나 비어 있는 경우) value
라는 암시적 매개 변수가 정의됩니다. 이 암시적 매개 변수의 데이터 형식은 이 Set
문이 선언된 속성의 데이터 형식입니다.
datatype
value
가 존재하고 Option Strict
가 On
인 경우 필수입니다. value
가 제공되지 않으면 존재할 수 없습니다. value
매개 변수의 데이터 형식입니다. 지정된 데이터 형식은 이 Set
문이 선언된 속성의 데이터 형식과 동일해야 합니다.
statements
선택 사항. Set
속성 프로시저가 호출될 때 실행되는 하나 이상의 문입니다.
End Set
필수입니다. Set
속성 프로시저의 정의를 종료합니다.
설명
속성이 ReadOnly
로 표시되지 않는 한 모든 속성에는 Set
속성 프로시저가 있어야 합니다. Set
프로시저는 속성 값을 설정하는 데 사용됩니다.
Visual Basic은 대입문이 속성에 저장할 값을 제공할 때 속성의 Set
프로시저를 자동으로 호출합니다.
Visual Basic은 속성 할당 중에 매개 변수를 Set
프로시저에 전달합니다. Set
에 대한 매개 변수를 제공하지 않으면 IDE(통합 개발 환경)는 value
라는 암시적 매개 변수를 사용합니다. 매개 변수는 속성에 할당할 값을 보유합니다. 일반적으로 이 값을 전용 지역 변수에 저장하고 Get
프로시저가 호출될 때마다 반환합니다.
속성 선언 본문에는 속성 문과 End Property
문 사이에 속성의 Get
및 Set
프로시저만 포함될 수 있습니다. 해당 프로시저 외에는 아무것도 저장할 수 없습니다. 특히 속성의 현재 값을 저장할 수 없습니다. 이 값을 속성 프로시저 중 하나 내부에 저장하면 다른 속성 프로시저에서 이 값에 액세스할 수 없기 때문에 이 값을 속성 외부에 저장해야 합니다. 일반적인 방식은 속성과 동일한 수준에서 선언된 Private 변수에 값을 저장하는 것입니다. 적용되는 속성 내부에 Set
프로시저를 정의해야 합니다.
Set
문에서 accessmodifier
를 사용하지 않는 한 Set
프로시저의 기본값은 포함 속성의 액세스 수준입니다.
규칙
혼합된 액세스 수준 읽기-쓰기 속성을 정의하는 경우 선택적으로
Get
또는Set
프로시저에 대해 서로 다른 액세스 수준을 지정할 수 있지만 둘 다 지정할 수는 없습니다. 이렇게 하면 프로시저 액세스 수준이 속성의 액세스 수준보다 더 제한적이어야 합니다. 예를 들어, 속성이Friend
로 선언된 경우Set
프로시저Private
은 선언할 수 있지만Public
은 선언할 수 없습니다.WriteOnly
속성을 정의하는 경우Set
프로시저는 전체 속성을 나타냅니다.Set
에 대해 다른 액세스 수준을 선언할 수 없습니다. 그렇게 하면 해당 속성에 대해 두 가지 액세스 수준이 설정되기 때문입니다.
동작
속성 프로시저에서 반환.
Set
프로시저가 호출 코드로 반환되면 저장할 값을 제공한 문에 따라 실행이 계속됩니다.Set
속성 프로시저는 Return 문 또는 Exit 문을 사용하여 반환할 수 있습니다.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
참고 항목
.NET