Avatar billede huusom Nybegynder
16. oktober 2003 - 21:56 Der er 13 kommentarer og
1 løsning

Hente arrays fra hist og pist.

Jeg har en knap på min Win App hvor der bliver skabt et array i.
En anden knap skal bruge noget fra det array.
Hvordan får man hentet det over i den nye knap?

Er spørgsmålet forstået?
Avatar billede repsak Nybegynder
16. oktober 2003 - 22:15 #1
ikke helt...
men det lyder som om at dit problem er at du ikke har tilgang/adgang til arrayet ved 2. knaps kode right?
Avatar billede huusom Nybegynder
16. oktober 2003 - 22:17 #2
Øh ja... tror jeg nok.
Avatar billede huusom Nybegynder
16. oktober 2003 - 22:21 #3
Når man trykker på en knap bliver noget data hentet og lagt i et array.
En anden knap skal så tage data fra dette array og sammenligne det med noget data.
Hvordan får jeg hentet data fra den første knaps kode?
Avatar billede nameless Nybegynder
16. oktober 2003 - 23:00 #4
Hvis du opretter array'en i første knap er den ikke global. Så du skal lave en public class hvor du så kan lave en static array..
fx:

public class Data
{
    public static string[] DinArray = new string[10];
}


Så kan du bare kalde den ved at sige Data.DinArray...
Avatar billede huusom Nybegynder
17. oktober 2003 - 10:20 #5
Er der ikke en bedre måde?
Avatar billede nameless Nybegynder
17. oktober 2003 - 13:48 #6
Tror ikke du finder en nemmere måde, hvis du skal have flyttet det fra den ene void til den anden.

Men altså du får jo nok brug for flere globale ting så lav en class hvor ALT dit globale haløj ligger i.
Avatar billede repsak Nybegynder
17. oktober 2003 - 14:47 #7
Pas på med at bruge static hvis du ikke er helt klar på hvad den gør!!!
Men ellers er jeg (næsten) enig med nameless.
class A{
  private string[] array = new string[10];
  void knap(){
  array[2] = "nyt element";
  }

  void knap2(){
    array[2] = "overskriv det nye element";
  }
}
Avatar billede arne_v Ekspert
17. oktober 2003 - 22:17 #8
Hvis de to metoder ligger i samme klasse så er det nemt: gør som repsak
foreslår og lig det som instans member.

Hvis de to metoder ikke ligger i samme klasse men du har fuld kontrol
over klasserne så kan du lade den ene klasse have en referance til
den første klasse og igen bruge instans member.

Hvis de to metoder ikke ligger i samme klasse og du ikke har fuld
kontrol over klasserne, så kan du gøre som nameless foreslår og
bruge en klasse member (static). Et pænere alternativ til static
er singleton pattern.
Avatar billede repsak Nybegynder
17. oktober 2003 - 22:52 #9
huusom -> med singleton pattern menes formentlig noget i stil med:

private static readonly DinKlasse SINGLETON = new DinKlasse();

private DinKlasse(){
}

public static DinKlasse Singleton{
    get{
        return SINGLETON;
    }
}

hvilket sikrer at du kun kan/må oprette én instans af en bestemt klasse
Avatar billede arne_v Ekspert
17. oktober 2003 - 23:27 #10
En lidt utradtionel måde at lave singleton på.

De fleste ville nok holde sig tættere på GoF implementationen.

Der er iøvrigt en gennemgang her:

http://www.yoda.arachsys.com/csharp/singleton.html

(jeg vil anbefale den 1. versionfor singlethreaded og den 4. version
for multithreaded)
Avatar billede arne_v Ekspert
17. oktober 2003 - 23:32 #11
Avatar billede repsak Nybegynder
17. oktober 2003 - 23:38 #12
forstår ikke helt hvor det utraditionelle kommer ind???
Avatar billede repsak Nybegynder
17. oktober 2003 - 23:43 #13
...udover at jeg ikke har if(instance==null)...
Avatar billede arne_v Ekspert
17. oktober 2003 - 23:45 #14
Det er en fungerende singleton.

Men hvis du prøver at se den mangel på fantasi der ligges for dagen i
ovenstående links med hensyn til navngivning ...

Det er heller ikke kotyme at initialisere på den måde. Primært fordi
man ikke kan det i C++ men ...
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