Einem Struct in einer Liste von Structs eine weitere Liste von Structs hinzufügen?

  • VB.NET

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

    Einem Struct in einer Liste von Structs eine weitere Liste von Structs hinzufügen?

    Servus,

    heute möchte ich bei einigen Strukturen, die sich in einer Liste befinden, eine weitere Liste von Strukturen hinzufügen. Daran scheitert es aber kläglich. Hier mal mein Code:

    VB.NET-Quellcode

    1. Public Shared StructsList As New List(Of Struct)
    2. Public MembersList As New List(Of Member)
    3. Public Structure Member
    4. Dim name As String
    5. Dim FunctionExecuting As String
    6. End Structure
    7. Public Structure Struct
    8. Dim name As String
    9. Dim owner_nick As String
    10. Dim MembersOfThisShip As List(Of Member)
    11. End Structure
    12. Public Function createListOfStructs()
    13. ... Da fülle ich die Structs auf, klappt auch.
    14. End Function


    Und ab jetzt wird es seltsam:

    VB.NET-Quellcode

    1. Public Function AddStructureToList()
    2. Try
    3. Dim NewMember As Member
    4. For Each s As Struct In StructsList
    5. If s.name = StructName Then
    6. NewMember.name = "Paul"
    7. s.MembersOfThisStruct.Add(NewMember)
    8. End If
    9. Next
    10. Catch ex As Exception
    11. Console.WriteLine(ex.ToString
    12. End Try
    13. End Function


    Da wirft mir der Compiler folgendes als Exception:

    System.NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinst
    anz festgelegt.
    bei Testcase.MemberManager.AddStructureToList) in C:\Users\Tschapajew\source\repos\Testcase\MultiServer\Ga
    meManager.vb:Zeile 93.

    Habe ich was mit den Strukturen nicht ganz verstanden?

    Bin dankbar für jede Hilfe

    LG

    Tschapajew

    Code-Tags und Unterforen beachten. Editiert. Verschoben. ~fufu

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „fufu“ ()

    1. Option Strict On nicht vergessen, da Du Functions definierst, ohne ihren Rückgabetyp zu definieren.
    2. Der Rat aus Punkt 1 führt das gleich zu dem Hinweis zur Designzeit: "Die NewMember-Variable wird verwendet, bevor ihr ein Wert zugewiesen wird. Dies kann zur Laufzeit ..." Probier mal Dim NewMember As New Member
    3. Was ist bei Dir Zeile#93?
    4. Ist Dein Code aus Deinem aktuellen Programm? Da es einen Widerspruch gibt: In der Structure Struct deklarierst Du MembersOfThisShip, im Code aber schreibst Du MembersOfThisStruct
    5. Je weniger unspezifisches Try-Catch Du verwendest, desto schneller kommst Du den Fehlern auf die Schliche.

    Möge Dir das weiterhelfen.
    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.

    Tschapajew schrieb:

    meManager.vb:Zeile 93.
    Was steht in dieser Zeile und darum herum?
    Formatiere Deinen Code mit den entsprechenden Code-Tags: Button VB.NET [ vbnet ][ /vbnet ] (ohne Leerzeichen).
    Poste im richtigen Unterforum.
    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!