As in my previous article you was
see the example of Looping Through Array Class Objects. Now in this article we
talk about the .NET Framework which provides IEnumerable and IEnumerator interfaces to implement
and provide a collection like behavior to user-defined classes. These interfaces
are implemented through inner classes. An inner or nested-type class is enclosed
inside another class. The given bellow example shows the implementation of
the enumerator.
Example of Creating a custom Enumerator
Imports System
Imports
System.Collections
Class ItemCollection
Implements IEnumerable
' COLLECTION
End Class
Class ItemIterator
Implements IEnumerator
' ITERATOR
Private Class ItemCollection
' class ItemCollection is an Inner Class or Nested Type in class ItemIterator
End Class
'IEnumerator and IEnumerable interfaces are defined in System.Collections
'namespace as:
Public Interface IEnumerable
Function GetEnumerator() As IEnumerator
'returns an enumerator
End Interface
Public Interface IEnumerator
Function MoveNext() As Boolean
'After an enumerator is created or after a Reset,
'an
enumerator is positioned before the first element
'of the
collection, and the first call to MoveNext
'moves the
enumerator over the first element of the
'collection.
' And next
calls move the cursor one further till the end.
ReadOnly Property
Current() As Object
' Returns the
current object from the collection.
' You should
throw an InvalidOperationException exception
' if index
pointing to wrong position.
Sub Reset()
' Resets enumerator to just before the first element of the collection.
' Resets
pointer to -1.
End Interface
End Class
In VB.NET all array elements are initialized to their default values. For
reference-type variables, the default value is null. You need to instantiate the
reference element before you can access any member property; otherwise you
receive an error. As shown in below example, you can also use the Array.Initialize member function to initialize every element of a value-type
array by calling the default constructor of the value type.
Example of Array Initialization
Public Class DisplayPreferences
Private m_PropertyID As String
Public Sub New()
m_PropertyID
= Nothing
End Sub
Public Property
PropertyID() As String
Get
Return m_PropertyID
End Get
Set(ByVal
value As String)
m_PropertyID = value
End Set
End Property
End Class
Public Class MySampleClass
Public Shared Sub
Main()
Dim oPrefs As DisplayPreferences()
= New DisplayPreferences(9)
{}
' you have to initiliaze array items before use...
For i As Integer
= 0 To
oPrefs.Length - 1
oPrefs(i) = New DisplayPreferences()
Next
oPrefs(0).PropertyID =
"ID007"
' or if the array is of value-type, not necessary but...
Dim intarr As Integer()
= New Integer(9)
{}
intarr.Initialize()
intarr(0) = 7
End Sub
End Class
Conclusion
Hope this article would have helped you in understanding the
System.Array Class using VB.NET.