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.10. System.Collections.ObjectModel.Collection en ReadOnlyCollection

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.

De namespace System.Collections.ObjectModel voorziet ons in een aantal generieke klassen die dienen als templates voor strongly typed list en dictionary collectietypes.

23.10.1. System.Collections.ObjectModel.Collection(Of T)

Een generische instantie van Collection(Of T) is een typesafe list collectietype.
Visual Basic 2012 Broncode - Codevoorbeeld 604
Option Strict On
Option Explicit Off

Imports System.Collections.ObjectModel

Public Class Person
    Public Property Name As String
End Class
Public Class CollectionOfTExample
    Public Shared Sub Main()
        Dim persons1 As New Collection(Of Person)
        persons1.Add(New Person With {.Name = "John"})
        persons1.Add(New Person With {.Name = "Jane"})

        For Each element As Person In persons1
            Console.WriteLine(element.Name)
        Next
        '
        Console.ReadLine()
    End Sub
End Class
Console Application Output
John
Jane
Type Collection(Of T) is een typesafe variant van de CollectionBase klasse.  Een belangrijk verschil is dat de Collection(Of T) klasse, in tegenstelling tot de CollectionBase klasse, niet abstract (MustInherit) is.
Men is met andere woorden niet verplicht een afgeleide te maken van Collection(Of T), maar dit mag uiteraard wel.

Type List(Of T) heeft een uitgebreidere publieke interface in vergelijking met Collection(Of T), die dus over minder mogelijkheden beschikt.  Members als ConvertAll, Exists, Find*, RemoveAll, TrueForAll en ForEach die werken met delegate parameters als converters, predicates en actions, zijn beschikbaar in List(Of T) maar niet in Collection(Of T).

23.10.2. System.Collections.ObjectModel.ReadOnlyCollection(Of T)

Ook een readonly variatie op deze Collection(Of T) bestaat, namelijk ReadOnlyCollection(Of T).

De constructor van deze verwacht een collectie van de elementen, waarna (na creatie van dit collectie object) het niet meer de bedoeling is deze collectie te gaan wijzigen.
De collectie die de constructor verwacht moet van type IList(Of T) zijn, dit kan zoals in onderstaand voorbeeld gewoon een array van personen (Person() zijn).
Visual Basic 2012 Broncode - Codevoorbeeld 605
Imports System.Collections.ObjectModel

Public Class ReadOnlyCollectionOfTExample
    Public Shared Sub Main()
        Dim persons1 As Person() = New Person() _
                                        {New Person With {.Name = "John"}, _
                                         New Person With {.Name = "Jane"}}
        '
        Dim persons2 As New ReadOnlyCollection(Of Person)(persons1)
        For Each element As Person In persons2
            Console.WriteLine(element.Name)
        Next
        '
        Console.ReadLine()
    End Sub
End Class
Console Application Output
John
Jane
Type ReadOnlyCollection(Of T) is een typesafe variant van de ReadOnlyCollectionBase klasse.  Een belangrijk verschil is dat de ReadOnlyCollection(Of T) klasse, in tegenstelling tot de ReadOnlyCollectionBase klasse, niet abstract ( MustInherit) is.
Men is met andere woorden niet verplicht een afgeleide te maken van ReadOnlyCollection(Of T), maar dit mag uiteraard wel.

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