ERLEDIGT
NEIN
NEIN
ANTWORTEN
3
3
ZUGRIFFE
393
393
EMPFEHLEN
-
Hallo! Ich habe ein object, in welchem sich ein Int-Array unbekannter Dimension versteckt. Nun bekomme ich diese zwar über ein GetType heraus, nur kann ich diese Variable nicht casten, da dies dann wohl in einer If-Anweisung (Unterscheidung der ermittelten Casting-Typen) geschehen müßte. Casten in einer If-Anweisung setzt jedoch eine vorher deklarierte Variable voraus, deren Typ ich aber nunmal noch nicht kenne. Weis jemand Rat?
Danke, Peter
-
Hallo Meldur!
Denk mal bitte logisch.
Ein Array vom Typ int gibt dir entweder ein int oder null (Feld nicht initialisiert) zurück.
Wieso willst Du dann noch auf Type prüfen? Das solltest Du wenn dein Array vom Typ object ist.
Wenn Du Herrausfinden willst ob ein bestimmter Typ aus einem ObjektArray herrausgecasted werden kann,
kannst du den Operator as verwenden. Du bekommst null wenn nicht gecasted werden konnte
und ansonsten das object. Bei Zahlen funktioniert dieses aber nicht weil sie ein WertTyp sind.Code :1 2 3 4 5 6 7 8 9 10 11 12 13
object[] oArray = new object[3]; oArray[ 0 ] = (string) "ein String"; oArray[ 1 ] = (Int32) 99; // Das letzte bleibt null foreach ( object obj in oArray ){ if ( obj as string != null ) MessageBox.Show( string.Format( "String gefunden! Wert=\"{0}\"", (string) obj ) ); else if ( obj != null && obj.GetType().Equals( typeof(System.Int32) ) ) MessageBox.Show( string.Format( "Zahl gefunden! Wert=\"{0}\"", (int) obj ) ); else if ( obj == null) MessageBox.Show( "Wert ist null" ); }Falsch, Objekte in einer If-Anweisung müssen initialisiert sein.Casten in einer If-Anweisung setzt jedoch eine vorher deklarierte Variable voraus
Das sie Deklariert sein müssen ist klar, sonst wären sie gar nicht da.
Die VS IDE prüft vor dem Kompilieren ob die Objekte in den If-Anweisungen nicht initialisiert sind und meldet dies gegebenenfalls.
Kompilieren kann man sowieso, aber dein Proggi würde in der If-Anweisung eine Ausnahme werfen.
Du musst also deine Variablen und Arrays immer mit einem Wert initialisieren.
Objekte wenigstens mit null. Und Zahlen mit einem Wert
MfG, cosmoMfG,
Christian
Wer sein Problem definiert, hat es schon halb gelöst!
Bitte markiert eure Themen als erledigt. Sonst macht so ein Forum als Nachschlagewerk keinen Sinn.
The Code Project! - C# Programming | C# / VB.NET Pendants
Regeln + Netiquette
Liebe FIAEs, verlasst euch nicht auf das was in der Berufsschule "vermittelt" wird
und vor allem nicht auf das, was euch die IHK dazu erzählt!
Die haben so viel Ahnung von dem Gewerk, wie der Bundestag vom Haushalt...
-
Hi! Mir ist schon klar, daß ein Array eines bestimmten Typs auch nur diesen (oder halt NULL) zurückliefern kann - allerdings geht es in meinem speziellen Fall (ich wollte es ja eigentlich allgemeiner fassen) darum, daß ich ein int-Array unbekannter Dimensionierung in einem Objekt erhalte und aber damit arbeiten muß - nun kann ich das ja wie bereits erwähnt nur in eine Variable casten, die bereits einem Array dieser Form entspricht - ergo hab ich ein Problem und suche dazu ein Lösung.
-
Wieso verwendest zb nicht eine ArrayList? Dann hast das Problem erst gar net ...
Ähnliche Themen
-
Casten
Von JohnathanBernstein im Forum Algorithmen & Datenstrukturen mit JavaAntworten: 2Letzter Beitrag: 14.08.07, 13:28 -
Casten von Generics
Von dr-oetker im Forum JavaAntworten: 2Letzter Beitrag: 13.04.07, 09:37 -
Casten in PHP
Von baccula im Forum PHPAntworten: 0Letzter Beitrag: 12.02.06, 14:15 -
int zu String casten
Von noel1982 im Forum VisualStudio & MFCAntworten: 3Letzter Beitrag: 23.06.05, 13:26 -
Typen casten in vb?
Von sra im Forum Visual Basic 6.0Antworten: 3Letzter Beitrag: 08.10.04, 13:06





Zitieren
Login





