Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Hallo ihr Lieben,

wie bekomme, oder bekomme ich überhaupt, einen formatstring (also "Standard Numeric Format Strings") in ein Objekt gewandelt, welches IFormatProvider imlementiert?

Danke

  • Autor
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.

  • Autor
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.

  • Autor

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.

  • Autor
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

  • Autor

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.

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

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

  • Autor
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?

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.