Hallo,
ich sollte wissen ob ein Objekt ein Typ von .net (int, double, string, etc.), oder ein Typ von einer mir selbst erstellten Klassen ist.
Ich habe es über Reflection mit der System.Type Klasse und der GetType() Methode probiert. Leider habe ich aber nichts brauchbares gefunden.
Gibt es eine Möglichkeit mit der System.Type?
Gibt es eine andere Möglichkeit?
Gruß,
Klaus
Hallo SCHRANK,
wenn deine Klassen eine gemeinsame Oberklasse haben, kriegst du es leicht raus. Wenn nicht fällt mir erstmal nichts ein.
herbivore
IsSubClassOf
Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...
Hallo plucked,
was soll das bewirken? Wenn ich nicht total was übersehe, ist das doch großer Quatsch.
herbivore
Hallo,
so spontan fällt mir folgendes ein:
Eine Collection, in die Du alle Deine selbst erstellten Typen steckst, und dann sowas wie
collection.Contains(myObject.GetType())
@herbivore: nichts übersehen, ist großer Quatsch
Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca
Hallo Marsstein,
genau sowas in die Richtung suche ich.
Nur dass die Liste die Standard Systemtypen enthalten sollte.
Gibt es sowas? So in etwa wie IsSystemType oder so?
Und das liefert true wenn der Type int, double string etc. ist?
gruß und danke,
klaus
Was bezeichnet Du denn alles als Systemtypen? In dotnet sind alle Typen von Object abgeleitet, auch int, string, usw. wobei ja ein string schon wieder kein "einfacher" Typ ist, das wäre eher Char.
Wo ist die Grenze?
Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca
Hallo,
probier mal
System.TypeCode.GetNames(typeof(TypeCode)).Contains(myObject.GetType().Name
der Ausdruck vor "Contains" liefert die Namen der grundlegenden Basistypen als String-Array.
EDIT:
Folgende Typen werden erkannt:
Empty , Object, DBNull, Boolean, Char, SByte, Byte, Int16, UInt16, Int32, UInt32, Int64, UInt64, Single, Double, Decimal, DateTime, String
Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca