Mega Code Archive

 
Categories / VB.Net Tutorial / Class Module
 

Define Indexer for your own class

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