03. december 2007 - 18:12
Der er
7 kommentarer og 1 løsning
Returnere flere arrays af forskellig type
Mit problem er at jeg har en tekststreng som fungerer som en "key" med hvor jeg så splitter strengen op i 4 arrays som skal bruges i et andet program. 3 arrays er af typen int og det sidste er string. Hvordan laver jeg nemmest et return med alle arrays og i givet fald hvordan bruger jeg så de arrays i næste metode. en Key kan se sådan ud, uden mellemrum. "05 0102030409 0214032208 0102030405 1 abcd" Jeg laver 0102030409 er så 5 individuelle tal. 1, 2, 3, 4, 9. Som sagt har jeg så en metode der læser strengen og laver mine arrays og den skal så retunere den så jeg nemt kan bruge dem i min anden metode.
Annonceindlæg fra Infor
03. december 2007 - 18:14
#1
Okay, spørgsmålet lider lidt under at jeg har omformuleret det et par gange, men sig til hvis der er noget der er komplet uforståetligt.
03. december 2007 - 18:32
#2
Jeg tror nok jeg ville lave en klasse som har dine arrays som members - a'la: class Key { int[] partOne; int[] partTwo; [...osv...] string[] lastPart; //Lav derefter (read only?) properties for dem //Og en statisk parse metode. public static Key ParseKey(string key) { Key k = new key(); //Parse key string og fyld arrays return k; } } Når du så skal bruge dine arrays til andre metode kald kan du gøre noget a'la: Key key = Key.ParseKey(keyString); HandleSomeArray(Key.PartOne); /B :)
03. december 2007 - 18:33
#3
edit: HandleSomeArray(key.PartOne);
03. december 2007 - 18:48
#4
Jeg havde håbet på at kunne undgå at lave instans variabler, da det er sådan det er opbygget i øjeblikket. Der skal helst kunne køres tests på hvert modul i sidste ende, så alt skal for så vidt muligt retunere værdier i stedet. Samtidigt virker det overflødigt at oprette instans variabler da informationerne i de arrays kun skal bruge én gang hver gang programmet starter op.
03. december 2007 - 19:04
#5
Øh? Hvad er grunden til, at du vil undgå at lave instansvariable? Det lyder da helt tosset. Tests er da fuldt ud ligeså let (hvis ikke lettere) at lave på en isoleret klasse. Anyway - Det grimmeste jeg lige kan finde på lige nu, er at du laver en metode med en masse out-parametre. public void ParseKey(string key, out int[] partOne, out int[] partTwo, osv, osv) { } /B :)
03. december 2007 - 19:05
#6
Måske jeg lige misforstod din sidste kommentar. Du behøver da ikke lave instansvariable? Du kan da udmærket klare dig med lokale variable, hvis du bare bruger "Key" klassen i en enkelt metode? Tror du må prøve at forklare på en anden måde.. /B :)
03. december 2007 - 19:14
#7
Du har overbevist mig! Jeg tror jeg laver det lidt ala din første kommentar :-D Smid et svar så får du dine point :)
03. december 2007 - 19:16
#8
Svar :)
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.