Visual Basic 2012 Voorbeelden
   

visual basic 2012 broncode voorbeelden

Blijf op de hoogte van de recente aanpassingen op vbvoorbeelden!

Microsoft Visual Studio 2012Microsoft Developers Network - Visual BasicMicrosoft .NET Framework

23.6. System.Collections.Generic.ICollection(Of T) Interface

Print Email Deel op Twitter Deel op Facebook

Dit artikel is gepubliceerd op maandag 15 oktober 2012 op vbvoorbeelden, bezoek de website voor een recente versie van dit artikel of andere artikels.

23.6.1. System.Collections.Generic.ICollection(Of T)

Naast de basisinterface voor collecties System.Collections.ICollection, die er ongeveer zo uitziet :
Public Interface ICollection : Inherits IEnumerable
    Sub CopyTo(ByVal array As Array, ByVal index As Integer)
    ReadOnly Property Count() As Integer
End Interface
Bestaat er ook een strongly typed variant, namelijk System.Collections.Generic.ICollection(Of T), die als volgt is gedefinieerd :
Public Interface ICollection(Of T) : Inherits IEnumerable(Of T), IEnumerable
    Sub Add(ByVal item As T)
    Sub Clear()
    Function Contains(ByVal item As T) As Boolean
    Sub CopyTo(ByVal array As T(), ByVal arrayIndex As Integer)
    ReadOnly Property Count() As Integer
    ReadOnly Property IsReadOnly() As Boolean
    Function Remove(ByVal item As T) As Boolean
End Interface
Interface ICollection definieerde niet veel meer meer dan een enumereerbare ( IEnumerable) collectie waarvan men het aantal elementen kan opvregen ( Count).

De ICollection(Of T) interface daarintegen is meer uitgebreid, ook methods als Add, Remove, Clear en Contains zijn voorzien.  Wat opzich logischer is voor een basisinterface voor collecties, de meeste collecties zullen inderdaad mogelijk maken om elementen toe te voegen en te verwijderen.

23.6.2. System.Collections.Generic.IEnumerable(Of T)

Bemerk dat ICollection(Of T) naast de IEnumerable interface ook de IEnumerable(Of T) interface overerft.  Ter herinnering deze interfaces zien er zo uit :
Public Interface IEnumerable
    Function GetEnumerator() As IEnumerator
End Interface

Public Interface IEnumerable(Of T) : Inherits IEnumerable
    Shadows Function GetEnumerator() As IEnumerator(Of T)
End Interface
Een type dat ICollection(Of T) implementeert moet dus ook een implementatie voorzien voor GetEnumerator() As IEnumerator(Of T), wat wil zeggen dat we er een strongly typed enumerator moeten in opleveren.
Public Interface IEnumerator
    Function MoveNext() As Boolean
    ReadOnly Property Current() As Object
    Sub Reset()
End Interface

Public Interface IEnumerator(Of T) : Inherits IDisposable, IEnumerator
    ReadOnly Property Current() As T
End Interface
Property Current levert in IEnumerator(Of T) geen Object maar wel een T op :
Visual Basic 2012 Broncode - Codevoorbeeld 599
Option Strict On

Imports System.Collections
Imports System.Collections.Generic

Namespace ICollectionOfTExample
    Public Class Client
        Public Shared Sub Main()
            Dim array1 As Integer() = New Integer() {1, 2, 3}
            Dim enumerable1 As IEnumerable(Of Integer) = array1
            Dim enumerator1 As IEnumerator(Of Integer) = _
                                                     enumerable1.GetEnumerator()
            '
            enumerator1.MoveNext()
            Dim integer1 As Integer = enumerator1.Current
            '
            Console.WriteLine(integer1) ' 1
            '
            Console.ReadLine()
        End Sub
    End Class
End Namespace
Console Application Output
1

Dit artikel is gepubliceerd op maandag 15 oktober 2012 op vbvoorbeelden, bezoek de website voor een recente versie van dit artikel of andere artikels.