mit Variable/Namen auf Arrayplatz zugreifen

  • VB.NET

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

    mit Variable/Namen auf Arrayplatz zugreifen

    Hallo Leute,
    ich will eig. nur der Übersichtlichkeit meines Codes zuliebe mittels einer eigenen Variable, bzw. einfach einer eigenen Bezeichnung auf einen speziellen Platz in einem Array zugreifen.
    Sprich ich habe ein Integer-Array "aintName(10)" --> dieses hat jetzt 11 Plätze (0 + (1 bis 10))
    Jetzt muss ich oft in aintName(0) eine Counter-Zahl schreiben während die anderen Felder Werte beinhalten.
    Ich habe da mal was gehört, dass man Konstanten definieren kann, wo dann der Kompiler selbst beim kompilieren diese ersetzt.
    Also quasi, am Anfang des Programms schreib ich: *ersetze varCount durch aintName(0)*
    Das nimmt der Compiler nun und ersetzt im ganzen Codefile vor dem Umsetzen den Ausdruck varCount mit aintName(0).
    Somit könnte ich bei der Programmierung im Code einfach immer schreiben:
    varCount = [... irgendwas ...]
    und nicht immer
    aintName(0) = [... irgendwas ...]
    Das würde meinen Code sehr viel leichter lesbar machen, für mich...

    Gibts da so eine Möglichkeit? - Oder einfach dass wenn ich schreibe:
    varCount = 10
    es den "10er" nicht (nur) in varCount schreibt sondern eben auch ins array... Kann ich da mit Referenzen was machen?
    Quasi varCount ist die Referenz zu aintName(0), so Pointer mäßig...???

    ich arbeite mit Visual Studio 2013 Express - VB.NET

    Vielen Dank!
    lg
    Hey,

    so wird das nicht laufen. Integer sind Wertetypen. Hier gibt es keine Referenz in dem Sinne. Wenn Du einer Variablen den Wert eines ArrayMembers zuweist, so wird der Wert kopiert. Was Du machen kannst, wenn Dir das so wichtig ist, dann kapsle einen Integer in einer Klasse, so erhälst Du eine Referenz und kannst das machen, was Dir vorschwebt. Nur sehe ich darin nicht wirklich einen Sinn, denn der Schreibaufwand bleibt gleich.
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    3. Dim elements(2) As Test
    4. Dim reference As Test = Nothing
    5. elements(0) = New Test() With {.Value = 10}
    6. elements(1) = New Test() With {.Value = 11}
    7. elements(2) = New Test() With {.Value = 12}
    8. reference = elements(1)
    9. reference.Value = 1000
    10. MessageBox.Show(elements(1).Value.ToString())
    11. End Sub
    12. End Class
    13. Public Class Test
    14. Public Property Value As Integer
    15. End Class
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o
    Allgemein macht sowas überhaupt keinen Sinn. Speichere den Zähler als eigene Variable, nicht im Array, in Arrays gehören nur semantisch zusammengehörige, gleichartige Daten.
    Die sogenannten Kompilerdirektiven, von denen du hier sprichst, gibt es in VB.Net übrigens nicht in dieser Form.
    @fox(fux)
    Meinst Du ein Dictionary(Of String, Integer) :?:
    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!