Laden...

ToString() von einer geboxten Instanz

Letzter Beitrag vor 17 Jahren 12 Posts 1.636 Views
ToString() von einer geboxten Instanz

Hallo zusammen !

Folgendes Problem : Ich erhalte von einer Methode ein object zurück. In diesem object kann nun ein geboxter primitiver Typ, ein string oder ein Enum verborgen sein.

Was ich brauche ist die Repräsentation des geboxten Elements als String. Geht das irgendwie automatisiert oder muss ich eine Fallunterscheidung nach dem Schema


if(myObject is string)
  objectString = (string)myObject;
else if(myObject is int)
  objectString = ((int)myObject).ToString();
else if(myObject is double)
  objectString = ((double)myObject).ToString();

//usw.

zwingend machen (so mache ich es derzeit, gefällt mir aber nicht besonders)?

Danke schonmal...

"It is not wise to be wise" - Sun Tzu

und was spricht gegen

myObject.ToString

?

Du kannst auch einfach nur ToString() aufrufen. Die meisten Basis-Typen geben dir dann eine sinnvolle String-Repräsentation zurück.

Der Object.ToString-Methode ist es logischerweise egal, ob das Objekt ein Wert- oder Referenztyp ist (laut Objektorientierung weiß eine Basisklasse nichts von den abgeleiteten Klassen und ValueType ist nun mal von Object abgeleitet).

Eigentlich funktioniert das aber (--> Stichwort Polymorphie)

Sollte dein Objekt die ToString() Methode nicht überschrieben haben, schau dir mal die Klasse TypeConverter an.

Danke schonmal für die Antworten, aber wenn ich myObject.ToString() aufrufe erhalte ich "System.Object" zurück ...

"It is not wise to be wise" - Sun Tzu

Um was für Objekte handelt es sich?

Wie oben bereits geschrieben, entweder primitive Typen wie int, double, float usw. oder strings oder enums.

"It is not wise to be wise" - Sun Tzu

Alle diese Typen sollten die ToString() Methode überschrieben haben. Somit sollte ein einfaches ToString() reichen.
Zeig mal deinen Code.

Funktioniert Convert.ToString()?

Ok, vergesst es, ich Hornochse hab mit der falschen Funktion rumprobiert. Wenn ich es mit der Funktion mache, mit der ich es eigentlich machen wollte, dann kann ich einfach myObject.ToString() machen und alles funzt wie erwartet.

Danke und sorry für meine Blödheit 🙂

"It is not wise to be wise" - Sun Tzu