속성 이름과 속성 값을 저장하고 검색하는 데 사용되는 속성 프로시저를 선언합니다.
구문
[ <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선택 사항. 이 속성이나
Get또는Set프로시저에 적용되는 특성 목록입니다. 특성 목록을 참조하세요.Default선택 사항. 이 속성이 해당 속성이 정의된 클래스 또는 구조체의 기본 속성임을 지정합니다. 기본 속성은 매개 변수를 허용해야 하며 속성 이름을 지정하지 않고도 설정하고 검색할 수 있습니다. 속성을
Default로 선언하면 속성이나 해당 속성 프로시저에서Private을 사용할 수 없습니다. 예제 및 자세한 지침은 방법: Visual Basic에서 기본 속성 선언 및 호출을 참조하세요.accessmodifierProperty문과Get및Set문 중 최대 하나에서는 선택 사항입니다. 다음 중 하나일 수 있습니다.Access levels in Visual Basic을 참조하세요.
propertymodifiers선택 사항. 다음 중 하나일 수 있습니다.
MustOverride OverridesNotOverridable Overrides
Shared선택 사항. 공유를 참조하세요.
Shadows선택 사항. Shadows를 참조하세요.
ReadOnly선택 사항. ReadOnly를 참조하세요.
WriteOnly선택 사항. 쓰기 전용을 참조하세요.
Iterator선택 사항. 반복기를 참조하세요.
name필수입니다. 속성의 이름입니다. Declared Element Names을 참조하세요.
parameterlist선택 사항. 이 속성의 매개 변수와
Set프로시저의 가능한 추가 매개 변수를 나타내는 지역 변수 이름 목록입니다. 매개 변수가 있는 속성은 컬렉션과 유사한 액세스를 허용하는 인덱서 또는 기본 속성을 만드는 데 자주 사용됩니다. 매개 변수 목록 및 방법: Visual Basic에서 기본 속성 선언 및 호출을 참조하세요.returntypeOption Strict가On인 경우 필수입니다. 이 속성에서 반환된 값의 데이터 형식입니다.Implements선택 사항. 이 속성이 하나 이상의 속성을 구현함을 나타냅니다. 각 속성은 이 속성을 포함하는 클래스 또는 구조체에 의해 구현된 인터페이스에 정의됩니다. Implements 문을 참조하세요.
implementslistImplements가 제공된 경우 필수입니다. 구현 중인 속성 목록입니다.implementedproperty [ , implementedproperty ... ]각
implementedproperty에는 다음과 같은 구문과 요소가 있습니다.interface.definedname요소 설명 interface필수입니다. 이 속성을 포함하는 클래스 또는 구조체에 의해 구현된 인터페이스의 이름입니다. definedname필수입니다. interface에 속성이 정의된 이름입니다.Get선택 사항. 속성이
ReadOnly로 표시된 경우 필수입니다. 속성 값을 반환하는 데 사용되는Get속성 프로시저를 시작합니다. 이Get문은 자동으로 구현된 속성과 함께 사용되지 않습니다.statements선택 사항.
Get또는Set프로시저 내에서 실행할 문 블록입니다.End GetGet속성 프로시저를 종료합니다.Set선택 사항. 속성이
WriteOnly로 표시된 경우 필수입니다. 속성 값을 저장하는 데 사용되는Set속성 프로시저를 시작합니다. 이Set문은 자동으로 구현된 속성과 함께 사용되지 않습니다.End SetSet속성 프로시저를 종료합니다.End Property이 속성의 정의를 종료합니다.
설명
Property 문은 속성 선언을 소개합니다. 속성에는 Get 프로시저(읽기 전용), Set 프로시저(쓰기 전용) 또는 둘 다(읽기-쓰기)가 있을 수 있습니다. 자동으로 구현된 속성을 사용할 때 및 Get 프로시저를 생략 Set 할 수 있습니다. 자세한 내용은 자동으로 구현된 속성을 참조 하세요.
클래스 수준에서만 Property를 사용할 수 있습니다. 이는 속성의 선언 컨텍스트가 클래스, 구조체, 모듈 또는 인터페이스여야 하며 원본 파일, 네임스페이스, 프로시저 또는 블록이 될 수 없음을 의미합니다. 자세한 내용은 선언 컨텍스트 및 기본 액세스 수준을 참조하세요.
기본적으로 속성은 공용 액세스를 사용합니다.
Property 문의 액세스 한정자를 사용하여 속성의 액세스 수준을 조정할 수 있으며 선택적으로 해당 속성 프로시저 중 하나를 더 제한적인 액세스 수준으로 조정할 수 있습니다. 혼합 액세스 수준에 대한 자세한 예제는 방법: 혼합 액세스 수준으로 속성 선언을 참조하세요.
Visual Basic은 속성 할당 중에 매개 변수를 Set 프로시저에 전달합니다.
Set에 대한 매개 변수를 제공하지 않으면 IDE(통합 개발 환경)은 value라는 암시적 매개 변수를 사용합니다. 이 매개 변수는 속성에 할당될 값을 보유합니다. 일반적으로 이 값을 전용 지역 변수에 저장하고 Get 프로시저가 호출될 때마다 반환합니다.
규칙
혼합된 액세스 수준 읽기-쓰기 속성을 정의하는 경우 선택적으로
Get또는Set프로시저에 대해 서로 다른 액세스 수준을 지정할 수 있지만 둘 다 지정할 수는 없습니다. 이렇게 하면 프로시저 액세스 수준이 속성의 액세스 수준보다 더 제한적이어야 합니다. 예를 들어, 속성이Friend로 선언된 경우Set프로시저Private은 선언할 수 있지만Public은 선언할 수 없습니다.ReadOnly또는WriteOnly속성을 정의하는 경우 단일 속성 프로시저(각각Get또는Set)는 모든 속성을 나타냅니다. 해당 프로시저에 대해 다른 액세스 수준을 선언할 수 없습니다. 그렇게 하면 해당 속성에 대해 두 가지 액세스 수준이 설정되기 때문입니다.반환 형식.
Property문은 반환되는 값의 데이터 형식을 선언할 수 있습니다. 모든 데이터 형식이나 열거형, 구조체, 클래스 또는 인터페이스의 이름을 지정할 수 있습니다.returntype을 지정하지 않으면 속성은Object를 반환합니다.구현 이 속성이
Implements키워드를 사용하는 경우 포함 클래스 또는 구조체에는Implements또는Class문 바로 뒤에Structure문이 있어야 합니다.Implements문은implementslist에 지정된 각 인터페이스를 포함해야 합니다. 그러나 인터페이스가Property에 있는definedname를 정의하는 이름은name에 있는 이 속성의 이름과 동일할 필요는 없습니다.
동작
속성 프로시저에서 반환.
Get또는Set프로시저가 호출 코드로 반환되면 이를 호출한 문 다음의 문으로 실행이 계속됩니다.Exit Property및Return문은 속성 프로시저를 즉시 종료합니다.Exit Property및Return문은 프로시저의 어느 위치에나 나타날 수 있으며,Exit Property및Return문을 혼합할 수 있습니다.반환 값.
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 PropertyExit Property에 값을 할당하지 않고name를 사용하는 경우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
매개 변수가 있는 속성
다음 예제에서는 컬렉션에 배열과 유사한 액세스를 허용하는 인덱서라고도 하는 매개 변수가 있는 속성을 만드는 방법을 보여 줍니다.
Class SampleCollection
' Define a local collection to store strings.
Private items As New List(Of String)
' Define a parameterized property (indexer) for the collection.
Default Public Property Item(ByVal index As Integer) As String
Get
' Return the item at the specified index.
If index >= 0 AndAlso index < items.Count Then
Return items(index)
Else
Return Nothing
End If
End Get
Set(ByVal value As String)
' Set the item at the specified index.
If index >= 0 AndAlso index < items.Count Then
items(index) = value
ElseIf index = items.Count Then
' Allow adding new items at the end.
items.Add(value)
End If
End Set
End Property
' Add a Count property for convenience.
Public ReadOnly Property Count As Integer
Get
Return items.Count
End Get
End Property
' Add method to add items.
Public Sub Add(ByVal item As String)
items.Add(item)
End Sub
End Class
자동 구현, 혼합 액세스 수준 및 유효성 검사 시나리오를 비롯한 속성 사용의 포괄적인 예제는 속성 프로시저를 참조하세요.
참고 항목
속성 형식 및 기능
고급 속성 시나리오
관련 문 및 개념
.NET