Zum Inhalt springen

C# Casten möglich?


strico

Empfohlene Beiträge

Hallo, ich habe folgendes Problem.

Ich hab 2 Variablen, von denen ich vorher nicht weiß, was sie für ein Typ sind.

Jetzt wollte ich irgendwie herausfinden, ob der Typ der Variablen1 in den Typ, den Variable 2 hat gecastet werden kann.

ZB: Rein zufällig ist Variable 1 ein byte und Variable 2 ein int. Nun stellt sich die Frage, ist var1 in var2 castbar?

Viel interessanter wird das, wenn var1 ein DateTime ist und var2 ein string.

var1 lässt sich an und für sich immer in einen String casten. Die Methode, die ich brauch müsste dann true zurückliefern.

Zweitens: gibt es sowas in der Art:

variableX = (var1.getType())var2;

Also, dass ich sagen kann, dass var2 in den Typ von var1 gecastet werden soll. Der Typ von var1 steht nicht fest.

Danke für antworten.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Von Reflection habe ich schon gehört, weiß nur absolut nicht wie ich damit umgehen muss.

Also in meiner applikation habe ich eine Klasse, die xx Objekte beinhaltet. Den Typ eines solchen Objektes legt der Anwender fest. (Also der, der die Klasse verwendet, nicht der Endanwender)

Dann gibt es noch eine Datenbankabfrage. Im reader stehen dann irgendwelche Objekte.

Jetzt gibt es noch eine Methode, die die Werte aus dem Reader den einzelnen Werten aus der Klasse zuordnen soll, aber ohne dass in der Klasse der Typ eines der xx Objekte verändert werden soll.

So brauch ich irgendwas, das prüft, ob das objekt, das aus dem Reader kommt in ein objekt aus der Klasse gecastet werden kann.

PS: Was aus dem Reader wohin in die Klasse kommen soll, steht fest, aber nicht die Typen.

Geht das mit Reflection? Wenn ja, kann dies mir einer erklären wie?

Vielen DANK

Link zu diesem Kommentar
Auf anderen Seiten teilen

Prinzipiell solltest du zwischen Objekten (Referenztypen) und Werten (Wertetypen) unterscheiden. Nicht alles ist ein Objekt. Maximal, dass du einen Wertetyp via Boxing in einem Objekt stecken hast.

Was du dir noch ansehen solltest:

  • implizite Casts
  • explizite Casts

Lies dir dazu etwas durch und schon hast du wieder etwas gelernt.

Dann: Deine Klasse wird wohl der Tabellen-Struktur entsprechen. Denn welchen Sinn würde es haben, einen int in einen byte zu stopfen. Zumal hier Informationen verloren gehen können und das so nicht zulässig ist (eigentlich).

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wie casten geht und dass es Referenz- und Wertetypen gibt, ist mir wohl bekannt. Aber dennoch danke.

Bei meinem Problem komme ich mit Convert.ChangeType(........) soweit hin. Das mit den Reflections würde mich dennoch interessieren. Naja, bei MSDN bissel stöbern.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Jetzt wollte ich irgendwie herausfinden, ob der Typ der Variablen1 in den Typ, den Variable 2 hat gecastet werden kann.

Schau Dir das "is" Schlüsselwort an. Damit kannst Du die Kompatibilität überprüfen.

Zweitens: gibt es sowas in der Art:

variableX = (var1.getType())var2;

Wozu soll dies gut sein?

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