Zum Inhalt springen

[c#] formatstring in NumberFormatInfo umwandeln


steinadler

Empfohlene Beiträge

Die Frage ergibt für mich keinen Sinn.

Geh mal einen Schritt zurück, und beschreib bitte das Problem, nicht was du für die Lösung hältst.

wie üblich ;-)

Also folgendermaßen:

Ich habe ein Objekt vom Typ object. Das hat dann nach der Zuweisung irgendeinen Typ bool oder int oder so. Jetzt möchte ich gern mit Objekt.ToString(string _format) versuchen, das typisierte Objekt in die gewünschte Zeichenfolge umzuwandeln. Nur hat object keine ToString(string _format)-Methode.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Warum castest du das object (mit objects zu arbeiten ist boese!) nicht in den Typen und rufst dessen .ToString Methode auf?

Weil ich das zu dem Zeitpunkt noch nicht weiß. Das geht höchstens, wenn ich mittels switch den Typ prüfe.

Das ganze arbeitet auf einer Zwischenschicht... Es gibt eine Liste mit Objekten und ich weiß aber nicht, was von extern für neue Objekte

eingespeißt wurden. Mit GetString(string _format) wollte ich dann gern das erwählte Objekt in einen String umwandeln.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hm... na was soll ich genauer beschreiben.

Es gibt eine Liste vom Datentyp object, der verschiedene Daten hinzugefügt werden.

Es geht dort nur um Datentypen wie byte, int, double, float, bool.

Da ich aber zur Entwurfszeit noch nicht weiß, welchen Typ die Objekte (werden per Datei eingelesen) haben, hab ich mich für eine Liste vom Typ object entschieden.

Nun möchte ich von der Oberfläche her gern einen bestimmten Wert aus der Liste als Zeichenfolge ausgegeben haben. z.B. über eine Methode namens GetString(). Das geht auch soweit, nur möchte ich gern noch einen Format-String übergeben.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo

nur mal als Idee, warum nimmst du eine Liste vom Typ Object ? Du könntest doch auch einfach eine Liste vom Typ String machen, dann geht auch die Format funktion.

Gruß Hans-Jörg

... dann kann ich aber das Format zur Laufzeit nicht mehr bestimmen.

Bearbeitet von steinadler
Link zu diesem Kommentar
Auf anderen Seiten teilen

Hab jetzt die Lösung gefunden (was eine Nacht Schlaf so bringen kann). Ist eigentlich ganz simpel: Die Objekte, die per formatstring formatiert werden können, implementieren die Schnittstelle IFormattable.

In meiner Methode prüfe ich einfach, ob das Objekt diese Schnittstelle implementiert. Somit spare ich mir ein switch-case für alle Datentypen.

Danke an alle.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Es geht dort nur um Datentypen wie byte, int, double, float, bool.

also solltest du eine Klasse als gemeinsamen Datentyp verwenden, der in der Klassenhirarchie so tief wie möglich angeordnet ist (wenn Object an oberster Stelle steht und davon abgeleitete Klassen darunter)

in dem Fall wäre das nicht Object sondern ValueType

sollten alle übergebenen Elemente auch das Interface implementiert haben, kannst du auch das Interface als Typ für die Liste verwenden

Link zu diesem Kommentar
Auf anderen Seiten teilen

eine Klassenhirarchie gibt es, allerdings weiß ich nicht, ob es irgendwo eine gute Übersicht gibt

du solltest allerdings wissen, wie im .NET Frame die Wertetypen und Referenztypen gehandhabt werden

Der Unterschied ist mir schon klar. Basistyp object nützt mir nicht sehr viel, da die Objekte auch Strings enthalten können sollen. Also muss ich doch auf Basistyp object zurückgreifen.

Aber selbst auf die Basisklasse ValueType muss man erstmal kommen. int und Konsorten sind ja structs, oder?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...