Namen von Properties über Variablen abfragen

  • VB.NET

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

    Namen von Properties über Variablen abfragen

    Moin!

    ich habe eine Classe mit Eigenschaften erstelle.

    VB.NET-Quellcode

    1. Public Class DataOfDatenErhebung 'Definition der Parameter für die Abfrage
    2. Const _k_Current_Tabelle As String = "AW_GSE_DATENERHEBUNG"
    3. Private _connection As Connection
    4. Private _Eblog As EBL.MapEdit.FUNC_Log
    5. Private _fDBC As EBL.MapEdit.FUNC_DB_Connection
    6. Private _fDBConnTools As EBL.MapEdit.FUNC_DB_ConnectionTools
    7. Private _fMitarbeiter As EBL.MapEdit.FUNC_Mitarbeiter
    8. Private _fGlobalTbd As New EBL.Global.TBD
    9. ' ------------------ HINWEIS
    10. ' bei weiteren Properties auch unten die GET-Funktionen entsprechend erweitern!!!!!
    11. Public Property FID As Long = -1
    12. Public Property FID_MITARBEITER As Long = -1
    13. Public Property FID_WE As Long = -1
    14. Public Property FID_JOURNAL As Long = -1
    15. ...


    Nun möchte ich auf diese Properties in einer Schleife zugreifen wo sich Teile des Namens ändern.

    Als Zeichenkette dieses zusammen zu setzen ist ein leichtes.

    Aber kann ich die Properties irgendwie über diese Namen abfragen.

    VB.NET-Quellcode

    1. Dim _Data_Datenerhebung as new DataOfDatenErhebung
    2. .....
    3. ' hier werden dann Properties belegt....
    4. ...
    5. ' hier würde ich gerne das vereinfachen
    6. With UControl
    7. .Value0 = _Data_Datenerhebung.ANSCHLUSS_AN_RW_ANZ
    8. .Value1 = _Data_Datenerhebung.ANSCHLUSS_AN_MW_ANZ
    9. .Value2 = _Data_Datenerhebung.ANSCHLUSS_AN_SW_ANZ
    10. End With
    11. ' Hinweis zum schnellen Finden der Unterschiede: RW, MW und SW ändern sich


    Geht das irgendwie?

    Gruß Jan

    jan99 schrieb:

    Nun möchte ich auf diese Properties in einer Schleife zugreifen wo sich Teile des Namens ändern.
    WHAT?
    Namen von irgend etwas während der Laufzeit ändern?
    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!
    Nimm doch einfach ein dynamic und dann ist jut.
    Alternativ ein JSON Objekt, darin kannst du auch so rumwursten, wie du es hier gerne hättest.

    Du bist nunmal in einer statisch getypten Umgegung zugange, da kannst du nicht ohne Weiteres bei einem normalen Typ die intrinsischen Eigenschaften ändern.
    Quellcode lizensiert unter CC by SA 2.0 (Creative Commons Share-Alike)

    Meine Firma: Procyon Systems

    Selbstständiger Softwareentwickler & IT-Techniker.
    Sowas kannst mit Reflection bewerkstelligen.

    C#-Quellcode

    1. // var pi = Bar.GetType().GetProperties().Where(x => x.Name.StartsWith("ANSCHLUSS_AN_"));
    2. var pi = Bar.GetType().GetProperty("Foo");
    3. Console.WriteLine($"{pi.Name}: {pi.GetValue(Bar)}");