Hallo, ich habe vor eine Liste anzulegen, die zwei unterschiedliche Datentypen enthält, die aber von einem gemeinsamen Datentypen abgeleitet wurden.
Datentyp "matrix" und "scalar" wurden jeweils vom Datentyp "operand" abgeleitet. Mein Ziel ist es Objekte vom Datentyp "matrix" und "scalar" in einer Liste zu speichern und später darauf zuzugreifen.
Zum Beispiel so:
Wie kann ich also zum Ausdruck bringen, dass eine bestimmte Aktion nur ausgeführt wird, wenn der Datentyp der richtige ist?
Habe etwas von IEnumerable(Of T) anstatt List(of T)gelesen.
Datentyp "matrix" und "scalar" wurden jeweils vom Datentyp "operand" abgeleitet. Mein Ziel ist es Objekte vom Datentyp "matrix" und "scalar" in einer Liste zu speichern und später darauf zuzugreifen.
Zum Beispiel so:
VB.NET-Quellcode
- Public Class Form1
- Public Function Rechnung(ByVal Test As List(Of class_matrix.operand)) As Double
- For Each Element In Test
- If TypeOf Element Is class_matrix.matrix Then
- 'folgede Eigenschaft steht nur im Datentyp matrix zur Verfügung
- Element.num_spalten = 8 '<-- hier tritt ein Fehler auf: ...ist kein Member von "class_matrix.operand"
- End If
- If TypeOf Element Is class_matrix.scalar Then
- 'folgede Eigenschaft steht nur im Datentyp scalar zur Verfügung
- Element.value = 99.6 '<-- hier tritt ein Fehler auf: ...ist kein Member von "class_matrix.operand"
- End If
- Next
- End Function
- Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
- 'Liste die Elemente des Datentyps operand enthält
- Dim meine_Liste As New List(Of class_matrix.operand)
- 'Die Datentypen matrix und scalar sind vom Datentyp operand abgeleitet
- Dim _matrix As New class_matrix.matrix
- Dim _scalar As New class_matrix.scalar
- meine_Liste.Add(_matrix)
- meine_Liste.Add(_scalar)
- Rechnung(meine_Liste)
- End Sub
- End Class
Wie kann ich also zum Ausdruck bringen, dass eine bestimmte Aktion nur ausgeführt wird, wenn der Datentyp der richtige ist?
Habe etwas von IEnumerable(Of T) anstatt List(of T)gelesen.
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Tenobaal“ ()