Benutzer mit den meisten Antworten
Dynamische Typconvertierung

Frage
-
Hallo,
Ich habe ein Feld vom Typ Object und eines vom Typ Type.
Kann ich mittels des Type Feldes das Object Feld (in dem ein Wert, der in den Typ der in Type gespeichert ist konvertiert werden kann) Casten.
object Value; Type type; ... //Hier werden die Felder initialisiert, z. B durch Einlesen der Werte aus einer Datei int i = (type) Value;
Ich habe bisher immer nur Fehlermeldungen bekommen, wenn ich das versucht habe, also wenn es geht, wie?
Ich würde es nämlich gerne in einem Getter anwenden, ungefähr so:
public object ReturnValue { get { return (type) Value; } }
Schon mal Danke im Vorraus.
Chrissoftan Freeware - Live is Binary
Antworten
-
Hi Chrissoftan,
für so was solltest du einen Generischen ansatz verwenden.
http://msdn.microsoft.com/de-de/library/512aeb7t%28v=vs.80%29.aspx
MFG
Björn
- Als Antwort markiert Chrissoftan Mittwoch, 10. April 2013 05:36
-
Hallo, wenn du nichts generisches machen möchtest müsstest du den Namen des Typs mit jedem möglichen anderen Typ abgleichen. Wenn du ein object hast und den Typ nicht kennst, dann nützt auch casten nichts da du ja den Typ nicht kennst.
Besonders in deinem 2. Codeschnippsel macht es keinen Sinn, da die Eigenschaft sowieso ein object zurück gibt. Beim ersten musst du direkt int nehmen, da du ja anscheinend weißt das es ein int ist. Ob es eines ist kann du wie gesagt mit dem Namen des Typs heraus finden.
Der Nae des Typs: http://msdn.microsoft.com/de-de/library/system.type.fullname.aspx
Hinweis: Dieser wird in IL-Syntax (also mit Namespace und einigen anderen Besonderheiten) angegeben.<Code:13/> - Koopakiller [kuːpakɪllɐ]
Webseite | Code Beispiele | Facebook | Snippets
Wenn die Frage beantwortet ist, dann markiert die hilfreichsten Beiträge als Antwort und bewertet die Beiträge. Danke.
Einen Konverter zwischen C# und VB.NET Code gibt es hier.- Als Antwort markiert Chrissoftan Mittwoch, 10. April 2013 05:35
Alle Antworten
-
Hi Chrissoftan,
für so was solltest du einen Generischen ansatz verwenden.
http://msdn.microsoft.com/de-de/library/512aeb7t%28v=vs.80%29.aspx
MFG
Björn
- Als Antwort markiert Chrissoftan Mittwoch, 10. April 2013 05:36
-
Hallo, wenn du nichts generisches machen möchtest müsstest du den Namen des Typs mit jedem möglichen anderen Typ abgleichen. Wenn du ein object hast und den Typ nicht kennst, dann nützt auch casten nichts da du ja den Typ nicht kennst.
Besonders in deinem 2. Codeschnippsel macht es keinen Sinn, da die Eigenschaft sowieso ein object zurück gibt. Beim ersten musst du direkt int nehmen, da du ja anscheinend weißt das es ein int ist. Ob es eines ist kann du wie gesagt mit dem Namen des Typs heraus finden.
Der Nae des Typs: http://msdn.microsoft.com/de-de/library/system.type.fullname.aspx
Hinweis: Dieser wird in IL-Syntax (also mit Namespace und einigen anderen Besonderheiten) angegeben.<Code:13/> - Koopakiller [kuːpakɪllɐ]
Webseite | Code Beispiele | Facebook | Snippets
Wenn die Frage beantwortet ist, dann markiert die hilfreichsten Beiträge als Antwort und bewertet die Beiträge. Danke.
Einen Konverter zwischen C# und VB.NET Code gibt es hier.- Als Antwort markiert Chrissoftan Mittwoch, 10. April 2013 05:35