Pie*_*let 0 .net vb.net syntax properties
我注意到在代码库中我必须阅读有时属性定义包含一个空().那是什么意思?它与数组无关.
例如 :
Public Property TotalPages() As Integer
Run Code Online (Sandbox Code Playgroud)
我知道它看起来很奇怪(对我们来说很好C#'),但属性可以在VB.NET中有参数.
所以你可以拥有
Public Class Student
Private ReadOnly _scores(9) As Integer
' An indexed Score property
Public Property Score(ByVal index As Integer) As _
Integer
Get
Return _scores(index)
End Get
Set(ByVal value As Integer)
_scores(index) = value
End Set
End Property
Private _score As Integer
' A straightforward property
Public Property Score() As _
Integer
Get
Return _score
End Get
Set(ByVal value As Integer)
_score = value
End Set
End Property
End Class
Public Class Test
Public Sub Test()
Dim s As New Student
' use an indexed property
s.Score(1) = 1
' using a standard property
' these two lines are equivalent
s.Score() = 1
s.Score = 1
End Sub
End Class
Run Code Online (Sandbox Code Playgroud)
所以你的宣言
Public Property TotalPages() As Integer
Run Code Online (Sandbox Code Playgroud)
是一个简单的非索引属性,例如没有参数.
它表明该属性不带参数:它不是索引属性.
一个索引属性有一个或多个索引.这允许属性呈现出类似阵列的特性.例如,查看以下类:
Class Class1
Private m_Names As String() = {"Ted", "Fred", "Jed"}
' an indexed property.
Readonly Property Item(Index As Integer) As String
Get
Return m_Names(Index)
End Get
End Property
End Class
Run Code Online (Sandbox Code Playgroud)
从客户端,您可以使用以下代码访问Item属性:
Dim obj As New Class1
Dim s1 String s1 = obj.Item(0)
Run Code Online (Sandbox Code Playgroud)
来自MSDN杂志的索引属性说明