Pointer in VB

  • VB.NET

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

    Pointer in VB

    Gibt es eine Möglichkeit in VB Pointers zu verwenden?

    Zur Klärung: Ich brauche die Speicher-Adresse der Variable, die wird dann einem Pointer zugewiesen.
    Warum: Browsen in mehreren listen/arrays
    Beim browsen wird der Pointer "Abgefragt", der auf unterschiedliche Listen verweisen kann, je nach dem, was der User gemacht hat.

    Danke im Voraus.
    Klassen in .NET (also auch Arrays) sind Referenztypen.
    Das heißt, du agierst mehr oder weniger mit einem Pointer.
    Bei Übergabe als Parameter wird nur die Referenz auf das Objekt kopiert, nicht das Objekt selbst.
    Beispiel:

    VB.NET-Quellcode

    1. Sub ChangeSomething(ByVal arr As Integer(), ByVal index As Integer, ByVal value As Integer)
    2. arr(index) = value
    3. End Sub
    4. Dim intArrar = New Integer(10) {}
    5. ChangeSomething(intArr, 5, 1234)

    Beachte jedoch, dass dies nicht mit Werttypen funktioniert.
    Probier mal so was hier:

    VB.NET-Quellcode

    1. Dim ptr As IntPtr = New IntPtr(12345678)
    2. Dim i1 As Integer = Marshal.ReadInt32(ptr, 0)
    3. Dim i2 As Integer = Marshal.ReadInt32(ptr, 4)
    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!