預設屬性
更新:2007 年 11 月
接受 (Accept) 引數的屬性可宣告為類別的預設屬性。未給物件命名特定屬性時,Visual Basic 會使用「預設屬性」。因為預設屬性可讓您藉由省略常用的屬性名稱,使原始程式碼更精簡,所以非常有用。
預設屬性的最佳候選者是接受參數並且是您認為最常使用的屬性。例如,Item 屬性是集合類別 (Collection Class) 預設屬性的理想選擇,因為很常使用。
下列規則 (Rule) 可套用至預設屬性:
型別只能有一個預設屬性,包括繼承自基底類別的屬性。這個規則只有一個例外。在基底類別中定義的預設屬性可以被衍生類別中的另一個預設屬性遮蔽。
如果基底類別的預設屬性被衍生類別中的非預設屬性所遮蔽,預設屬性仍可以使用預設屬性語法來存取。
預設屬性不可以是 Shared 或 Private。
如果多載屬性是預設屬性,則具有該相同名稱的所有多載屬性也必須指定 Default。
預設屬性必須接受至少一個引數。
範例
下列範例宣告含有字串陣列的屬性,以當做類別的預設屬性:
Class Class2
' Define a local variable to store the property value.
Private PropertyValues As String()
' Define the default property.
Default Public Property Prop1(ByVal Index As Integer) As String
Get
Return PropertyValues(Index)
End Get
Set(ByVal Value As String)
If PropertyValues Is Nothing Then
' The array contains Nothing when first accessed.
ReDim PropertyValues(0)
Else
' Re-dimension the array to hold the new element.
ReDim Preserve PropertyValues(UBound(PropertyValues) + 1)
End If
PropertyValues(Index) = Value
End Set
End Property
End Class
存取預設屬性
您可使用縮寫語法來存取預設屬性。例如,下列程式碼片段使用標準及預設屬性語法:
Dim C As New Class2
' The first two lines of code access a property the standard way.
' Property assignment.
C.Prop1(0) = "Value One"
' Property retrieval.
MsgBox(C.Prop1(0))
' The following two lines of code use default property syntax.
' Property assignment.
C(1) = "Value Two"
' Property retrieval.
MsgBox(C(1))
請參閱
概念
Visual Basic 6.0 使用者可以進行的預設屬性變更