Klasse hinzufügen von Wertepaaren

  • VB.NET

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Klasse hinzufügen von Wertepaaren

    Hallo,

    ich habe eine Klasse welche dynamisch viele Werte nutzen kann. Und genau da ist mein Problem, wie kann ich Werte hinzufügen.


    Das ist die Klasse:

    VB.NET-Quellcode

    1. Partial Public Class CLSSettings
    2. Private menusField() As CLSSettingsMenu
    3. Public Property menus() As CLSSettingsMenu()
    4. Get
    5. Return Me.menusField
    6. End Get
    7. Set
    8. Me.menusField = Value
    9. End Set
    10. End Property
    11. End Class
    12. Partial Public Class CLSSettingsMenu
    13. Private idField As Integer
    14. Private xField As Integer
    15. Private yField As Integer
    16. Private widthField As Integer
    17. Private heightField As Integer
    18. Private collectionField As String
    19. Public Property id() As Integer
    20. Get
    21. Return Me.idField
    22. End Get
    23. Set
    24. Me.idField = Value
    25. End Set
    26. End Property
    27. Public Property x() As Integer
    28. Get
    29. Return Me.xField
    30. End Get
    31. Set
    32. Me.xField = Value
    33. End Set
    34. End Property
    35. Public Property y() As Integer
    36. Get
    37. Return Me.yField
    38. End Get
    39. Set
    40. Me.yField = Value
    41. End Set
    42. End Property
    43. Public Property width() As Integer
    44. Get
    45. Return Me.widthField
    46. End Get
    47. Set
    48. Me.widthField = Value
    49. End Set
    50. End Property
    51. Public Property height() As Integer
    52. Get
    53. Return Me.heightField
    54. End Get
    55. Set
    56. Me.heightField = Value
    57. End Set
    58. End Property
    59. Public Property collection() As String
    60. Get
    61. Return Me.collectionField
    62. End Get
    63. Set
    64. Me.collectionField = Value
    65. End Set
    66. End Property
    67. End Class


    und hiermit möchte ich weitere Wertepaare hinzufügen:

    VB.NET-Quellcode

    1. Dim temp As New CLSSettingsMenu()
    2. Public Settings As New CLSSettings()
    3. 'irgendeine Funktion:
    4. temp.id = 99
    5. temp.x = 1
    6. temp.y = 1
    7. temp.width = 2
    8. temp.height = 2
    9. temp.collection = "irgendwas"


    Wie kann ich jetzt temp der Klasse Settings.menus hinzufügen. Ich kenne Concat, aber ich hier raffe ich nicht, wie ich es einsetzen kann. Es sollen später verschiedene Werte-paare hinzugefügt werden, welche dann wieder ausgelesen werden können:

    VB.NET-Quellcode

    1. meineid = settings.menus(0).id
    2. meinx = settings.menus(0).x
    3. 'etc.

    sodah schrieb:

    Wie kann ich jetzt temp der Klasse Settings.menus hinzufügen
    Da ein Array nicht dafür ausgelegt ist, dynamisch zu wachsen, sondern man die einzelnen Elemente kompliziert hin- und hertransferieren muss, nimm statt

    VB.NET-Quellcode

    1. Public Property menus() As CLSSettingsMenu()

    eine

    VB.NET-Quellcode

    1. Public ReadOnly Property menus As New List(Of CLSSettingsMenu)

    Dann geht es ganz einfach:

    VB.NET-Quellcode

    1. settings.menus.Add(temp)
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    @VaporiZed war schneller.
    @sodah Die Settings-Klasse etwa so:

    VB.NET-Quellcode

    1. Public Class CLSSettings
    2. Private menusField As List(Of CLSSettingsMenu)
    3. Public Sub New()
    4. menusField = New List(Of CLSSettingsMenu)
    5. End Sub
    6. Public Sub AddEntry(entry As CLSSettingsMenu)
    7. menusField.Add(entry)
    8. End Sub
    9. Public Function GetEntry(index As Integer) As CLSSettingsMenu
    10. If index < 0 OrElse index >= menusField.Count Then
    11. Return Nothing
    12. End If
    13. Return menusField(index)
    14. End Function
    15. End Class
    die Menu-KLasse so:

    VB.NET-Quellcode

    1. Public Class CLSSettingsMenu
    2. Public Property id() As Integer
    3. Public Property x() As Integer
    4. Public Property y() As Integer
    5. Public Property width() As Integer
    6. Public Property height() As Integer
    7. Public Property collection() As String
    8. End Class
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!