Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

C# beginners vraag

Pagina: 1
Acties:
  • 483 views

Verwijderd

Topicstarter
Hallo,

Wie kan mij helpen met het volgende probleem waar ik niet uit kom?

Ik heb een klasse Agent aangemaakt met get/set methoden:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace MODEL
{
    public class Agent
    {
       string _id;
       int _leeftijd;
       string _naam;
       bool _inzetbaar;

       public Agent() { }
   


        public Agent(string id, int leeftijd, string naam, bool inzetbaar)
        {
            _id = id;
            _leeftijd = leeftijd;
            _naam = naam;
            _inzetbaar = inzetbaar;
        }

      

        public string id
        {
            get { return _id; }
            set { _id = value; }
        }

        public string naam
        {
            get { return _naam; }
            set { _naam = value; }
        }

        public int leeftijd
        {
            get { return _leeftijd; }
            set { _leeftijd = value; }
        }

        public bool inzetbaar
        {
            get { return _inzetbaar; }
            set { _inzetbaar = value; }
        }



    }
}


In een andere laag maak ik de GUI en heb ik een venster Toevoegen en een button om een nieuwe Agent toe te voegen. Welke uiteindelijk in een Acces-database komt.


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Button Toevoegen ...
private void btnToevoegen_Click(object sender, EventArgs e)
        {

            Agent nieuweagent;
            string id;
            string naam;
            int leeftijd;

            id = txtID.Text;
            naam = txtNaam.Text;
            leeftijd = Convert.ToInt16(txtLeeftijd.Text);


            DialogResult resultaat = MessageBox.Show("Zeker?", "Agent toegevoegd",
            MessageBoxButtons.YesNo, MessageBoxIcon.Question);

            if (resultaat == DialogResult.Yes)
            {
               >>> nieuweagent = new Agent(id, naam, leeftijd); <<<
                Agenten.voegtoe(nieuweagent);

                LegenVenster();
                MessageBox.Show("Een nieuwe Agent is toegevoegd");
            }
            
        }
    }
}



Bij de vet-gedrukte regel gaat het mis:
Error 1 'MODEL.Agent' does not contain a constructor that takes 3 arguments

Ik heb van alles geprobeerd maar de code zou naar mijn idee moeten kloppen. Wat zie ik over het hoofd?

Alvast bedankt voor de hulp _/-\o_

  • EnnaN
  • Registratie: September 2002
  • Laatst online: 21-11 11:24

EnnaN

Toys in the attic

lijkt me toch vrij duidelijlk?
code:
1
public Agent(string id, int leeftijd, string naam, bool inzetbaar)

vs
code:
1
new Agent(id, naam, leeftijd);

met de error dat je geen constructor hebt die 3 argumenten nodig heeft.
Oftewel doe:

code:
1
2
3
new Agent(id, naam, leeftijd, true);
//of
new Agent(id, naam, leeftijd, false);


(ow, en als ik het zo zie: draai de argumenten ook even rond zodat ze in de goede volgorde staan, maar dat is left as an exercise to the reader)

[ Voor 17% gewijzigd door EnnaN op 17-11-2013 17:35 ]

sig


  • Eguna
  • Registratie: Januari 2002
  • Laatst online: 02-10 10:27

Eguna

AMD is liev

Welke vet-gedrukte regel ;)

Het gaat fout omdat je in je Agent klasse aan constructor zonder parameters hebt op regel 16, en eentje met 4 parameters op regel 20. in je knop functie geef je drie parameters mee, da mag nie :)

My life for hire!


Verwijderd

Topicstarter
bedankt!! ik had er niet bij stilgestaan dat er inderdaad precies evenveel argumenten moeten zijn als in de constructor.

Blijkbaar doet ook de volgorde er toe.

  • Merethil
  • Registratie: December 2008
  • Laatst online: 08:50
Hoe wil je anders dat je class weet welke informatie er in welke variabele gestopt moet worden? :/

Verwijderd

Topicstarter
Merethil schreef op zondag 17 november 2013 @ 18:43:
Hoe wil je anders dat je class weet welke informatie er in welke variabele gestopt moet worden? :/
Ik snap hem! Ik dacht dat hij dat zou herkennen aan de naam maar dat zijn feitelijk andere variabelen die ook een andere naam hadden kunnen hebben.

Weer wat geleerd ;)

thnx all

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 20-11 11:59

NMe

Quia Ego Sic Dico.

Volgende keer dus gewoon even begrijpend lezen of op zijn minst even je foutmelding in Google stoppen: [google=does not contain a constructor that takes arguments]. We willen je best helpen maar dit probleem had je met een minuutje Google eerder opgelost dan met een topic hier.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.

Pagina: 1

Dit topic is gesloten.