0

プロパティ定義に空の () が含まれている場合があることを読む必要があるコード ベースで気付きました。それの意味は何ですか?そして、それは配列とは何の関係もありません。

例えば ​​:

Public Property TotalPages() As Integer
4

2 に答える 2

7

私はそれが奇妙に思えることを知っています (私たち 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

だからあなたの宣言

Public Property TotalPages() As Integer

パラメータのない単純なインデックスのないプロパティです。

于 2012-04-06T12:36:51.243 に答える
5

プロパティが引数を取らないこと、つまりインデックス付きプロパティではないことを示しています。

インデックス付きプロパティには、1 つ以上のインデックスがあります。これにより、プロパティは配列のような性質を示すことができます。たとえば、次のクラスを見てください。

  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 

クライアント側から、次のコードを使用して Item プロパティにアクセスできます。

Dim obj As New Class1 
Dim s1 String s1 = obj.Item(0)

MSDN マガジンからのインデックス付きプロパティの説明

于 2012-04-06T12:37:39.390 に答える