Avatar billede lizardine Nybegynder
18. april 2003 - 11:31 Der er 12 kommentarer og
1 løsning

IList Collection

Hey

Jeg har bygget en klasse der tilføjer en række værdier til en Arraylist. men skidtet vil ikke rigtig fungere. Jeg får en fejlbesked der lyder som følger:

No overload for method 'Size' takes '1' arguments

Her er min kode:

using System;
using System.Collections;

namespace Framework.Data
{
    public class Size
    {
        private static IList gIListSize;

        static Size()
        {
            gIListSize = new ArrayList();

            SetSize(new Size("20'"));
            SetSize(new Size("40'"));
            SetSize(new Size("45"));
            SetSize(new Size("50"));
            SetSize(new Size("55"));
        }

        public static void SetSize(Size aStrSize)
        {
            gIListSize.Add(aStrSize);
        }

        public static IList GetSize()
        {
            return gIListSize;
        }
    }
}

Håber at der nogle der kan hjælpe.
Avatar billede nielslbeck Nybegynder
18. april 2003 - 11:40 #1
Hvad er det helt præcis du vil? Du har lavet en klasse som hedder Size - og prøver på at tilføje en række instanser af den til din ArrayList... men du får en fejl, da der ikke findes en constructor der tager en parameter af typen String...
Avatar billede lizardine Nybegynder
18. april 2003 - 11:44 #2
Hvorfor er det nødvendigt (Sikkert en dumt spørgsmål) at angive en string parameter i sin constructor ???
Avatar billede nielslbeck Nybegynder
18. april 2003 - 11:45 #3
Det er ikke nødvendigt - men du prøver på at oprette en instans af din klasse, hvor du giver en streng med: new Size("55") - "55" er en streng...

Hvad er det klassen skal bruges til?
Avatar billede nielslbeck Nybegynder
18. april 2003 - 11:47 #4
Det du er ved at lave er noget frygtelig rekursivt noget - som i løbet af kort tid vil gi' stackoverflow, da du i din constructor bliver ved med at oprette nye instanser af klassen...
Avatar billede lizardine Nybegynder
18. april 2003 - 11:52 #5
Ok - Det jeg ønsker med klassen er at lave en collection bestående af en række værdier. Har ud et forslag til hvordan ovenstående kan gøres bedre ?
Avatar billede nielslbeck Nybegynder
18. april 2003 - 11:55 #6
Nogle faste værdier, eller bare nogle værdier som skal tilføjes løbende?
Hvis det bare er nogle værdier der skal tilføjes løbende, er der ingen grund til at oprette en seperat klasse til det - så kan du lige så godt bare bruge ArrayList direkte...
Avatar billede lizardine Nybegynder
18. april 2003 - 11:56 #7
Det er blot nogle faste værdier jeg skal bruge løbende.
Avatar billede nielslbeck Nybegynder
18. april 2003 - 11:59 #8
Okay - ville det så ikke være lettest bare at tilføje dem til en ArrayList i din kode - altså uden en klasse til at gøre det? Så kan du jo bare hente dem ud når du skal bruge dem... Hvilke værdier skal det være? int's, strenge eller andet?
Avatar billede lizardine Nybegynder
18. april 2003 - 12:00 #9
Det skal blot være numeriske værdier
Avatar billede nielslbeck Nybegynder
18. april 2003 - 12:04 #10
Så ville jeg jo nok bare gøre sådan her:

// Opret en ArrayList
ArrayList values = new ArrayList();

// I constructoren sætter vi defaultværdier
values.Add(20);
values.Add(40);
values.Add(45);
values.Add(50);
values.Add(55);

// Vi skal nu bruge den 3. værdi i ArrayList'en
int i = values[2];

Hvor første stump kode er en instansvariabel, anden stump kode bliver udført i constructoren og tredie stump bliver kaldt i en metode...
Avatar billede nielslbeck Nybegynder
18. april 2003 - 12:06 #11
Og det virker så selvfølgelig ikke... en ArrayList indeholder object'er - så vi kan ikke direkte hente en int ud... sidste stump kode skulle være:

int i = Convert.ToInt32(values[2]);
Avatar billede lizardine Nybegynder
18. april 2003 - 12:32 #12
Tusind tak for hjælpen :-)
Avatar billede nielslbeck Nybegynder
18. april 2003 - 12:34 #13
Det er okay - du fik det til at virke? Kanon!
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