Define Indexer for your own class : Indexer « Class Module « VB.Net Tutorial






Option Strict On
 Imports System

 Public Class MyItemList
     Private strings(255) As String
     Private ctr As Integer = 0

     Public Sub New(ByVal ParamArray initialStrings( ) As String)
         Dim s As String

         For Each s In initialStrings
             strings(ctr) = s
             ctr += 1
         Next
     End Sub

     Public Sub Add(ByVal theString As String)
         If ctr >= Strings.Length Then
         Else
             Strings(ctr) = theString
             ctr += 1
         End If
     End Sub

     Default Public Property Item(ByVal index As Integer) As String
         Get
             If index < 0 Or index >= strings.Length Then
             Else
                 Return strings(index)
             End If
         End Get
         Set(ByVal Value As String)
             If index >= ctr Then
             Else
                 strings(index) = Value
             End If
         End Set
     End Property

     Public Function Count( ) As Integer
         Return ctr
     End Function
 End Class

 Public Class Tester
     Public Shared Sub Main( )
         Dim lbt As New MyItemList("Hello", "World")
         Dim i As Integer

         Console.WriteLine("After creation...")
         For i = 0 To lbt.Count - 1
             Console.WriteLine("lbt({0}): {1}", i, lbt(i))
         Next

         lbt.Add("W")
         lbt.Add("I")
         lbt.Add("J")
         lbt.Add("t")

         Console.WriteLine("After adding strings...")
         For i = 0 To lbt.Count - 1
             Console.WriteLine("lbt({0}): {1}", i, lbt(i))
         Next

         Dim subst As String = "e"
         lbt(1) = subst

         Console.WriteLine("After editing strings...")
         For i = 0 To lbt.Count - 1
             Console.WriteLine("lbt({0}): {1}", i, lbt(i))
         Next
     End Sub
 End Class
After creation...
lbt(0): Hello
lbt(1): World
After adding strings...
lbt(0): Hello
lbt(1): World
lbt(2): W
lbt(3): I
lbt(4): J
lbt(5): t
After editing strings...
lbt(0): Hello
lbt(1): e
lbt(2): W
lbt(3): I
lbt(4): J
lbt(5): t








6.27.Indexer
6.27.1.Define Indexer for your own class
6.27.2.Searchable Indexer