Laden...

Klasse mit Array korrekt erstellen

Erstellt von moepat vor 13 Jahren Letzter Beitrag vor 13 Jahren 620 Views
Thema geschlossen
M
moepat Themenstarter:in
1 Beiträge seit 2010
vor 13 Jahren
Klasse mit Array korrekt erstellen

Hallo,

ich würde gerne mit einem Perl-Script eine C#-Class erstellen, habe allerdings einige Probleme:

ich habe ein Array welches wie folgt aussieht:

{
   {"name1", 0001, 21, 1121, 1233454571},
   {"name2", 0002, 22, 1122, 1233454572},
   {"name3", 0003, 23, 1123, 1233454573},
   {"name4", 0004, 24, 1124, 1233454574},
}

zudem ein struct:

struct registers
{
   string name;
   ushort addr;
   byte size;
   ushort abc;
   ushort def;
}

ich möchte jetzt auf meine elemente wie folgt zugreifen:
array[0].name # ausgabe soll dann ein string mit "name1" sein
oder
array[2].def # soll mir dann 1233454574 liefern

ich arbeite noch nicht wirklich lange mit C# und komme eher von der ASM bzw Scripting Seite.
Ich hoffe ich bin hier richtig und irgendjemand kann mir helfen.

mein jetziger Code: (welcher nicht funktioniert 😦 )

    class SFRmasks
    {
        struct register_info_t
        {
            string name;
            ushort addr;
            byte size;
            ushort reset_value;
            ushort reset_value_mask;
        }

        class SFR
        {
            register_info_t getSFR(int index)
            {
                return table[index];
            }
        }

        class CRC_SFRs : SFR
        {
            register_info_t[] table = {
                {"name1", 0001, 21, 1121, 1233454571},
                {"name2", 0002, 22, 1122, 1233454572},
                {"name3", 0003, 23, 1123, 1233454573},
                {"name4", 0004, 24, 1124, 1233454574},
            };
        }
    }

mfg
moepat

3.430 Beiträge seit 2007
vor 13 Jahren

Hallo,

willkommen bei myCSharp.de

Wie man einen Array erstellt findest du hier: 🛈 📗 :rtfm:
Hier noch ein Tutorial dazu: Work with arrays

Das eigentliche Problem ist hier aber die Vererbung. Und zwar greifst du in getSFR auf table zu. Und diese Variable ist nicht zugreifbar da du erst in der davon abgeleiteten klasse deine table definiert hast. Schieb deine table in die Sfr klasse dann müsste es passen.

Wie man solche Syntaxfehler selbst lösen kann siehst du hier: [Hinweis] Syntaxfehler selbst lösen (Compilerfehlermeldungen)
Guck dir auch mal die Namingconventions von Microsoft an: Naming Conventions

Ich muss dich auf [Hinweis] Wie poste ich richtig? 1.1 und 1.1.1 verweisen da wir hier ein bestimmtes Maß an Eigeninitiative sowie etwas Grundwissen vorraussetzen.

Gruss
Michael

Thema geschlossen