VB.NET编程语言的出现,帮助开发人员轻松的实现了许多功能,我们可以利用它来帮助我们提高编程效率。在VB.NET中,接受参数的属性可声明为类的VB.NET默认属性。“默认属性”是当未给对象命名特定属性时 Microsoft Visual Basic .NET 将使用的属性。因为默认属性使您得以通过省略常用属性名使源代码更为精简,所以默认属性非常有用。#t#
最适宜作为默认属性的是那些接受参数并且您认为将最常用的属性。例如,Item 属性就是集合类默认属性的很好的选择,因为它被经常使用。
下列规则适用于VB.NET默认属性:
一种类型只能有一个默认属性,包括从基类继承的属性。此规则有一个例外。在基类中定义的默认属性可以被派生类中的另一个默认属性隐藏。
如果基类中的默认属性被派生类中的非默认属性隐藏,使用默认属性语法仍可以访问该默认属性。
默认属性不能是 Shared 或 Private。
如果某个重载属性是VB.NET默认属性,则同名的所有重载属性必须也指定 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
访问VB.NET默认属性
可以使用缩写语法访问默认属性。例如,下面的代码片段同时使用标准和VB.NET默认属性语法:
- Dim C As New Class2()
- ' The first two lines of code
access a property the standard way.- C.Prop1(0) = "Value One"
' Property assignment.- MessageBox.Show(C.Prop1(0))
' Property retrieval.- ' The following two lines of
code use default property syntax.- C(1) = "Value Two"
' Property assignment.- MessageBox.Show(C(1))
' Property retrieval.