Avatar billede kxh Nybegynder
24. september 2005 - 16:45 Der er 12 kommentarer og
1 løsning

Brug samme class flere gange.

Hej

jeg programmere normalt i VB.NET men skal over på C#, og så
støder man altid ind i ting man ikke lige kan få til at passe.
Problemet i dette sag er at jeg i VB har en class som er bygget lidt som et array, dvs. at jeg kan bruge den samme klasse det antal gange jeg har brug for, men jeg brugere ReDim findes der i C# noget i denne stil, eller forslag til en anden måde hvor jeg kan bruge samme class igen.

jeg skal lave et program som kan samtidig kan kommunikere med en ydre endhed over socket, derfor vil jeg lave en class som kan kommunikere over socket, og så "bare" kalde denne class det antal gange som jeg har behov for.

med venlig hilsen

Kim Hansen
Avatar billede arne_v Ekspert
24. september 2005 - 16:51 #1
http://www.aspheute.com/english/20001025.asp

forklarer både hvad du gør i C# og hvorfor redim er skidt
Avatar billede kxh Nybegynder
24. september 2005 - 17:03 #3
Hej Arne

Tak jeg prøver lige at kigge det igennem.
Avatar billede kxh Nybegynder
25. september 2005 - 10:55 #4
Hej

Er der nogen der evt. har et eksempel på hvordan jeg ligger en class ind
i et array, og hvordan jeg kan til gå dens funktioner igen.

// Kim
Avatar billede arne_v Ekspert
25. september 2005 - 11:24 #5
X[] a = new X[2];
a[0] = o1;
a[1] = o2;
a[0].m();
a[1].m();
Avatar billede kxh Nybegynder
25. september 2005 - 11:45 #6
Hej Arne

Okay for at jeg lige forstår det helt.


X[] a = new X[2]; // Her opretter du dit array med 2 instanser

a[0] = o1;        // Hvad sætter du den ens med her ? eller?

a[0].m()          // Du kalder en funktion i classen
Avatar billede arne_v Ekspert
25. september 2005 - 12:45 #7
X[] a = new X[2]; // array med 2 referencer til X

a[0] = o1; // stter et element/reference til at pege på en instans af X
Avatar billede kxh Nybegynder
25. september 2005 - 13:34 #8
Hej igen

jeg når da lidt længere hele tiden, vil det sige at jeg skal oprette lige så mange
instanser af min class som jeg vil have i mit array,

f.eks

       
cls_MultiClass[] a = new cls_MultiClass[2];

cls_MultiClass o1 = new cls_MultiClass();
cls_MultiClass o2 = new cls_MultiClass();

a[0] = o1;
a[1] = o2;
Avatar billede arne_v Ekspert
25. september 2005 - 13:44 #9
ja

men du kan jo bruge en for løkke !
Avatar billede innercitydk Nybegynder
25. september 2005 - 16:28 #10
Som jeg forstår det kan jeg lave et simpelt eksempel:

public class etellerandet
{
private variabeltype variabelnavn;
public variabeltype _variabelnavn
{
get{return variabelnavn;}
set{variabelnavn=value;}
}
...
//constructor hvis du vil initiere nogen felter i klassen
public etellerandet(...)
{
...
}
}

i main metoden kan du så kalde en anden klasse der eksempelvis initierer en ArrayList. En ArrayList er dynamisk, du behøver altså ikke at afsætte pladser på forhånd, men du kan bare fylde i den efterhånden som behovet opstår. Klassen finder du i System.Collections.
Du kan foreksempel lave en lykke der initierer instanser af klassen og tilføjer dem til din ArrayListe
Avatar billede innercitydk Nybegynder
25. september 2005 - 16:37 #11
Glemte lige at skrive at du laver instanser ved af skrive, jvf. eksemplet, etellerandet Eks=new etellerandet();
osv.. på den måde kan du jo bruge klassen så ofte du vil.
Avatar billede kxh Nybegynder
25. september 2005 - 18:00 #12
Hej arne

jeg har fået dit eksempel til at virke ved at benytte en do...while, jeg har fået den til at starte x antal instanser af min classe, og jeg kan se at jeg har fuld kontrol over dem, så det er bare dejligt - tusind tak for hjælpen.

// Kim
Avatar billede arne_v Ekspert
25. september 2005 - 18:03 #13
så ligger jeg et 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