Avatar billede novacdk Nybegynder
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.
Avatar billede novacdk Nybegynder
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.
Avatar billede bvli Praktikant
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 :)
Avatar billede bvli Praktikant
03. december 2007 - 18:33 #3
edit:
HandleSomeArray(key.PartOne);
Avatar billede novacdk Nybegynder
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.
Avatar billede bvli Praktikant
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 :)
Avatar billede bvli Praktikant
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 :)
Avatar billede novacdk Nybegynder
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 :)
Avatar billede bvli Praktikant
03. december 2007 - 19:16 #8
Svar :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester