Laden...

Ist Objekt ein System Typ?

Erstellt von SCHRANK vor 17 Jahren Letzter Beitrag vor 17 Jahren 1.405 Views
S
SCHRANK Themenstarter:in
3 Beiträge seit 2006
vor 17 Jahren
Ist Objekt ein System Typ?

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

49.485 Beiträge seit 2005
vor 17 Jahren

Hallo SCHRANK,

wenn deine Klassen eine gemeinsame Oberklasse haben, kriegst du es leicht raus. Wenn nicht fällt mir erstmal nichts ein.

herbivore

4.221 Beiträge seit 2005
vor 17 Jahren

IsSubClassOf

Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...

P
70 Beiträge seit 2006
vor 17 Jahren

probiere mal

.GetType().Equals(object);

Grüße

plucked

49.485 Beiträge seit 2005
vor 17 Jahren

Hallo plucked,

was soll das bewirken? Wenn ich nicht total was übersehe, ist das doch großer Quatsch.

herbivore

3.170 Beiträge seit 2006
vor 17 Jahren

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

S
SCHRANK Themenstarter:in
3 Beiträge seit 2006
vor 17 Jahren

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

3.170 Beiträge seit 2006
vor 17 Jahren

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

3.170 Beiträge seit 2006
vor 17 Jahren

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