JohnL Δημοσ. 22 Ιουλίου 2005 Δημοσ. 22 Ιουλίου 2005 Έχω φτιάξει ένα πρόγραμμα το οποίο χρησιμοποιεί ένα collection για να αποθηκεύει προσωρινά δεδομένα. To collection αποτελείται από πολλά structures (ίδιας μορφής), και τα structures από μεταβλητές, εκ των οποίων μία είναι ένα string (,) array. Εγώ θέλω κάποια στιγμή να το μεγαλώσω από (0,0) π.χ. σε (1,0). Όταν όμως χρησιμοποιώ το Redim μου βγάζει σφάλμα An unhandled exception of type 'System.InvalidCastException' occurred in microsoft.visualbasic.dll Additional information: Cast from type 'Object(,)' to type 'String(,)' is not valid. Δε γίνεται να χρησιμοποιήσω το Redim σε αυτή την περίπτωση? Αν όχι τι άλλο μπορώ να κάνω;
Dark_Sage Δημοσ. 22 Ιουλίου 2005 Δημοσ. 22 Ιουλίου 2005 Dokimase sthn arxh na ton dilwseis: Dim pinakas() As String Kai meta kathe fora pou thes na ton allaxseis na bazeis: ReDim pinakas(1, 0) As String 'h ReDim pinakas(0, 0) As String
firewalker Δημοσ. 22 Ιουλίου 2005 Δημοσ. 22 Ιουλίου 2005 Δες και εδώ λίγο. http://support.microsoft.com/kb/884378
JohnL Δημοσ. 22 Ιουλίου 2005 Μέλος Δημοσ. 22 Ιουλίου 2005 Δες και εδώ λίγο. http://support.microsoft.com/kb/884378 Το λινκ δε νομίζω ότι έχει καμία σχεση με αυτό που κάνω εγώ. Dokimase sthn arxh na ton dilwseis:Dim pinakas() As String Kai meta kathe fora pou thes na ton allaxseis na bazeis: ReDim pinakas(1' date=' 0) As String 'h ReDim pinakas(0, 0) As String[/quote'] Δεν επιτρέπεται στη VB .NET το As String σε Redim Ο κώδικας που χρησιμοποιώ (όχι όλοκληρος): >Public Structure S Dim Data As String(,) End Structure Dim Col As New Collection() ReDim Col.Item(1).Data(1, 0) 'εδώ βγάζει σφάλμα Col.Item(1).Data(1, 0) = "X"
bandito Δημοσ. 22 Ιουλίου 2005 Δημοσ. 22 Ιουλίου 2005 Έχω φτιάξει ένα πρόγραμμα το οποίο χρησιμοποιεί ένα collection για να αποθηκεύει προσωρινά δεδομένα. To collection αποτελείται από πολλά structures (ίδιας μορφής)' date=' και τα structures από μεταβλητές, εκ των οποίων μία είναι ένα string (,) array. Εγώ θέλω κάποια στιγμή να το μεγαλώσω από (0,0) π.χ. σε (1,0). Όταν όμως χρησιμοποιώ το Redim μου βγάζει σφάλμα An unhandled exception of type 'System.InvalidCastException' occurred in microsoft.visualbasic.dll Additional information: Cast from type 'Object(,)' to type 'String(,)' is not valid. Δε γίνεται να χρησιμοποιήσω το Redim σε αυτή την περίπτωση? Αν όχι τι άλλο μπορώ να κάνω; Μπορεις να χρησιμοποίσεις ενα ArrayList Δεν χρειάζεται ReDim και τετοια πράγματα. Απλώς του βάζεις ArrayList col = new ArrayList(); col.Add(anObject); col.Add(anotherObject); και μετά για να τα πάρεις πίσω myClass anObject = (myClass)col[0]; εχει και άλλο κολπάκια, ψάξε το documentation. Μπορείς να φτιάξεις και δικο σου collection για να μην κάνεις κάθε φορά cast.
JohnL Δημοσ. 22 Ιουλίου 2005 Μέλος Δημοσ. 22 Ιουλίου 2005 bandito με το Array List μπορώ να φτιάξω πίνακα 2 διαστάσεων με όσες σειρές και στήλες θέλω; Αν ναι άλλαξε αν μπορείς τον κώδικα που έχω φτιάξει ώστε να χρησιμοποιεί ένα ArrayList.
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.