Hallo zusammen !
Ich habe folgendes Problem: meine Funktion bekommt ein object, das ein auf object gecastetes Array ist. Das Array kann sowohl von Wert- wie Referenztypen sein.
Den Typ des Arrays bekomme ich mit GetType leicht, mit IsArray kann ich prüfen, ob es wirklich ein Array ist, aber wie komme ich an den Typ der Elemente ?
Ich würde nur ungern Regex auf Type.ToString anwenden und die eckigen Klammern wegmachen um dann aus dem String wieder einen Type zu erzeugen X(
Vielleicht habt ihr eine Idee...
Naja, einfach mal die Probe aufs Exempel, oder? Wenn das Array leer ist, kann's dir ja eigentlich auch egal sein, ansonsten einfach das erste Element auslesen und da den Typen feststellen...
An das erste Objekt komme ich aber erst ran, wenn ich's von object auf irgendeinen Array-Typen gecastet habe. Und das geht wohl erst, wenn ich weiß auf welchen. Immerhin für Referenztypen kann ich ja auf object[] casten, nur geht das nicht z.B. von int[] aus.
EDIT: Gelöst - ich kann auf Array casten und dann GetValue(0).GetType() verwenden.
Aber verlass dich nicht drauf, dass die Info stimmt, die du so rausgekriegt hast, weil das Array kann immernoch tatsächlich ein ObjectArray sein, im ersten Element ein String steht und im zweiten ein int...
Das ist zum Glück (in meinem Fall) aus dem Kontext klar. Wenn das erste ein String ist, sind's auch alle anderen.