none
Collection(Of T) RRS feed

  • Frage

  • Hallo Leute,
    ist es möglich eine Collection(Of T) an eine Funktion zu übergeben, wenn der Typ der Collection vorher nicht bekannt ist bzw. unterschiedlich sein kann?

    siehe als Beispiel:

        Private Function MyFunction(ByVal col As Collection(Of T)) As Integer
            Return col.Count
        End Function

    Vielen Dank im Voraus


    Christian Tauschek


    Mittwoch, 5. April 2017 18:26

Antworten

  • Hallo Christian,

    Für das gezeigte Beispiel kann man sich um die generische Collection(Of T) "herum drücken", in dem man als Argument die Schnittstelle ICollection beim Argumentyp verwendet. Dadurch wird die Eigenschaft Count über die Schnittstelle bereit gestellt.

    Im allgemeinen jedoch nicht, wenn man auf Elemente von <T> zugreifen will, denn dafür muss <T> bekannt sein. Wenn die <T> eine gemeinsame Basisklasse oder (besser) Schnittstelle haben, kann man es über eine Einschränkung erreichen, also etwas wie Collection(Of T As IMeineSchnittstelle).

    Hat man diese Möglichkeit nicht, wird es "unschön", siehe z. B.: Generics in C#, using type of a variable as parameter [duplicate] (in Visual Basic entsprechend).

    Gruß Elmar

    Mittwoch, 5. April 2017 18:53
    Beantworter