Avatar billede Slettet bruger
12. oktober 2006 - 20:47 Der er 14 kommentarer og
1 løsning

Arraylist m.m

Ville godt lave et lille system, hvor man kan tilføje brugere i med deres data... Bare ikke helt klar over hvordan....



    public class CPerson
    {
        string sFnavn;
        string sEnavn;
        string sAdr;
        string sTlf;

        public CPerson(string sFnavn, string sEnavn, string sAdr, string sTlf)
        {
            this.sFnavn = sFnavn;
            this.sEnavn = sEnavn;
            this.sAdr = sAdr;
            this.sTlf = sTlf;
        }

        public string Fnavn
        {
            get { return sFnavn; }
        }
        public string Enavn
        {
            get { return sEnavn; }
        }
        public string Adr
        {
            get { return sAdr; }
        }
        public string Tlf
        {
            get { return sTlf; }
        }
    }

    public class CBrugerstyring
    {
        private ArrayList arrBrugere;

        public ArrayList ArrBrugere
        {
            get { return arrBrugere; }
            set { arrBrugere = value; }
        }
Avatar billede Slettet bruger
12. oktober 2006 - 20:51 #1
skriver deres fnavn,enavn osv i nogle text bokse... men skulle i lægge inde med et projekt, som er lige til at gå til.. så ville det være lækkert
Avatar billede nielle Nybegynder
12. oktober 2006 - 22:18 #2
For det første ville jeg nok vælge at bruge generics i stedet for en ArrayList:

    public class CBrugerstyring
    {
        private List<CPerson> arrBrugere;

        public List<CPerson> ArrBrugere
        {
            get { return arrBrugere; }
            set { arrBrugere = value; }
        }
    }
Avatar billede nielle Nybegynder
12. oktober 2006 - 22:22 #3
Den indre liste skal selvfølgelig lige initialiseres på et eller andet tidspunkt:

    public class CBrugerstyring
    {
        private List<CPerson> arrBrugere = new List<CPerson>();

        public List<CPerson> ArrBrugere
        {
            get { return arrBrugere; }
            set { arrBrugere = value; }
        }
    }
Avatar billede nielle Nybegynder
12. oktober 2006 - 22:23 #4
Derefter kan du tilføje nue personer til listen på denne måde:

        private CBrugerstyring brugere = new CBrugerstyring();
        private void button1_Click(object sender, EventArgs e)
        {
            CPerson person = new CPerson(this.textBox1.Text, this.textBox2.Text, this.textBox3.Text, this.textBox4.Text);
            brugere.ArrBrugere.Add(person);
        }
Avatar billede Slettet bruger
13. oktober 2006 - 01:38 #5
Det virker sørme :)...Men hvad er generics.. ?
Avatar billede arne_v Ekspert
13. oktober 2006 - 02:07 #6
generics er det at have en type som er generisk d.v.s. kan bruges med forskellige
typer i dette tilfælde CPerson via syntaxen List<CPerson>
Avatar billede arne_v Ekspert
13. oktober 2006 - 02:09 #7
hvad er forskellen iøvrigt på:

CBrugerStyring cbs = new CBrugerStyring();

og

ArrayList al = new ArrayList(); / List<CPerson> = new List<CPerson>();

?
Avatar billede arne_v Ekspert
13. oktober 2006 - 02:10 #8
og ungarsk notation (klassenavne starter med C) er ikke så meget brugt i C#
Avatar billede nielle Nybegynder
13. oktober 2006 - 07:18 #9
arne_v> Jeg er ikke helt sikker på at jeg forstår spørgsmålet 13/10-2006 02:09:52?

kevinsk> En af de helt praktiske fordele du får ved at bruge generics, altså:

private List<CPerson> arrBrugere;

- i stedet for:

ArrayList al = new ArrayList();

- er at du dermed slipper for at skulle typecaste til CPerson hver gang at du trækker en person ud af al. Det giver dig derfor noget kode som er meget renere at læse. Der er også andre fordele, men det er den du mest ville lægge mærke til.
Avatar billede nielle Nybegynder
13. oktober 2006 - 07:29 #10
arne_v har iøvrigt fuldstændig ret mht. notationen. Microsoft har angivet nogle retningslinjer for hvordan de mener at man helst bør skrive C#-kode. Man bruger f.eks. ikke 'C' foran klasser for at indikere at de er - ja - Classes. Og variabelnavne skrives med "camelCase", dvs. med lille startbogstav og så stort bogstav for hvert nyt ord i variabelnavnet (som puklerne på en kamel).

Dette er din kode i en mere C#'sk korrekt form (farvet lidt af mine egne preferencer ... f.eks. synes jeg ikke at der er nogen grund til at forkorte variabelnavne):

    public class Person
    {
        private readonly string _forNavn;
        private readonly string _efterNavn;
        private readonly string _addresse;
        private readonly string _telefonNummer;

        public Person(string forNavn, string efterNavn, string addresse, string telefonNummer)
        {
            this._forNavn = forNavn;
            this._efterNavn = efterNavn;
            this._addresse = addresse;
            this._telefonNummer = telefonNummer;
        }

        public string ForNavn
        {
            get { return _forNavn; }
        }
        public string EfterNavn
        {
            get { return _efterNavn; }
        }
        public string Addresse
        {
            get { return _addresse; }
        }
        public string TelefonNummer
        {
            get { return _telefonNummer; }
        }
    }

    public class Brugerstyring
    {
        private List<Person> _arrBrugere = new List<Person>();

        public List<Person> ArrBrugere
        {
            get { return _arrBrugere; }
            set { _arrBrugere = value; }
        }
    }
Avatar billede arne_v Ekspert
13. oktober 2006 - 13:26 #11
nielle>

Jeg antyder at hvis ikke klassen (C)BrugerStyring har mere funktionalitet, så
er den efter min overbevisning overflødig.
Avatar billede Slettet bruger
13. oktober 2006 - 16:59 #12
nielle Tak for det hurtige svar, læg et svar.(Microsoft retningslinjer..evt link ?)
arne_v.. syndt du kom efter ham, ellers tak for inputtet
Avatar billede arne_v Ekspert
13. oktober 2006 - 19:07 #13
Avatar billede nielle Nybegynder
15. oktober 2006 - 18:19 #14
13/10-2006 13:26:15> I den oprindelige kode manglede der en slut-}. Jeg er ikke sikker på om dette skyldes en almindelig cut'n'paste fejl, eller om der rent faktisk vare mere kode. Jeg valgte at formode det sidste.

... og et svar :^)
Avatar billede Slettet bruger
15. oktober 2006 - 22:53 #15
jo der er mere, tak for hjælpen :)
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