Avatar billede ashansen Nybegynder
13. marts 2006 - 17:38 Der er 18 kommentarer og
1 løsning

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

Hej Jeg sidder med et problem, hvor jeg ønsker at instantierer et objekt, men fejlmeddelelsen som står i overskriften.
Jeg har kigget i hjælpen, men synes ikke jeg kommer en løsning nærmere. Kan I hjælpe?

Koden til fejlen ser således ud

private void btn_beregn_Click(object sender, EventArgs e)
{
    ASHCalc Beregning = new ASHCalc(txtBox_Regnestykke.Text);
    return Beregning;
}

Mvh

Allan
Avatar billede arne_v Ekspert
13. marts 2006 - 17:43 #1
Har ASHCalc en constructor med 1 arg ?
Avatar billede ashansen Nybegynder
13. marts 2006 - 17:47 #2
Nej det vil jeg ikke mene.
Det ser sådan her ud.


      public ASHCalc()
        {
            InitializeComponent();

            btn_num_0.Text = "0";
            btn_num_1.Text = "1";
            btn_num_2.Text = "2";
            btn_num_3.Text = "3";
            btn_num_4.Text = "4";
            btn_num_5.Text = "5";
            btn_num_6.Text = "6";
            btn_num_7.Text = "7";
            btn_num_8.Text = "8";
            btn_num_9.Text = "9";

            btn_opr_plus.Text = "+";
            btn_opr_minus.Text = "-";
            btn_opr_gange.Text = "*";
            btn_opr_divider.Text = "/";

            btn_clear.Text = "Clr";
            btn_beregn.Text = "Beregn";

            txtBox_Regnestykke.Text = "hehe";
            txtBox_Regnestykke.Enabled = false;
        }
Avatar billede ashansen Nybegynder
13. marts 2006 - 17:48 #3
txtBox_Regnestykke.Text = "hehe";
er blot noget jeg har prøvet at sætte ind.
Forstod på hjælpen af hvis txtBox_Regnestykke.Text havde en default værdi kunne dette fejle
Avatar billede nezz_dk Nybegynder
13. marts 2006 - 18:07 #4
et ligner at det du laver i din kode er at du har en gui der er vist med din kode fra din kommentar og den vil du så lave en ny af når du trykker på beregn, men hvorfor det??

hvis det er en regne maskine du vil lave ville jeg nok lave en metode der tog sig af dit input i txtBox_Regnestykke.Text, altså analysere sig gennem teksten og ud fra det beregner dit resultat og retunere det
Avatar billede arne_v Ekspert
13. marts 2006 - 18:13 #5
new ASHCalc(txtBox_Regnestykke.Text);

kalder en ASHCalc constructor med 1 argument
Avatar billede ashansen Nybegynder
13. marts 2006 - 18:13 #6
Hejsa

Det er en regnemaskine jeg vil lave.
Opgaven som er stillet, går egentligud på, at lave noget, hvor man instantierer et objekt for derfor at bruge det andetsteds.

Jeg kan godt følge din tankegang, men måden haar forestillet mig at lave det på er at jeg vil kalde Beregning fra en seperat C# fil, udføre beregningen der, og leverer resultatet tilbage til tekstfeltet.

Hvordan lyder der?

Mvh

Allan
Avatar billede ashansen Nybegynder
13. marts 2006 - 18:15 #7
arne_v

Som du sikhert har luret, er jeg i hvert fald ikke tysk stormester i det her.
Gider du forklare mig, hvorfor denne contruktor kun har et argument?

Mvh

Allan
Avatar billede arne_v Ekspert
13. marts 2006 - 18:42 #8
øh

new ASHCalc(
txtBox_Regnestykke.Text // <------------ 1 argument
);
Avatar billede ashansen Nybegynder
13. marts 2006 - 18:44 #9
hmm, hvordan vil du så skrive det?
Avatar billede arne_v Ekspert
13. marts 2006 - 18:47 #10
public ASHCalc() // <-------- ingen argumenter
Avatar billede arne_v Ekspert
13. marts 2006 - 18:52 #11
du skal erklaere den constructor og kalde den med det samme antal
argumenter
Avatar billede ashansen Nybegynder
13. marts 2006 - 19:26 #12
jeg må ærligt sige, at jeg ikke kan se hvad der mangler.
Vil du give et eksempel?
Avatar billede Syska Mester
13. marts 2006 - 20:20 #13
Det object du kalder, har ikke en contructor som tager imod 1 argument....

prøv at smid koden til din ASHCalc....
Avatar billede ashansen Nybegynder
13. marts 2006 - 20:20 #14
ok, jeg har ændret lidt på min contructor, men det bør ikke have praktisk betydning.

I følgende er hele koden.

Der hvor den fejler er der med hvor instantieres et nyt object, i metoden public void btn_beregn_Click(object sender, EventArgs e)

Vil i ikke kigge den igennem, og komme med et forslag til hvordan jeg kommer videre?

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace ASHCalc
{
    public partial class ASHCalc : Form
    {
        public ASHCalc()
        {
            InitializeComponent();
        }

        private void ASHCalc_Load(object sender, EventArgs e)
        {

            btn_num_0.Text = "0";
            btn_num_1.Text = "1";
            btn_num_2.Text = "2";
            btn_num_3.Text = "3";
            btn_num_4.Text = "4";
            btn_num_5.Text = "5";
            btn_num_6.Text = "6";
            btn_num_7.Text = "7";
            btn_num_8.Text = "8";
            btn_num_9.Text = "9";

            btn_opr_plus.Text = "+";
            btn_opr_minus.Text = "-";
            btn_opr_gange.Text = "*";
            btn_opr_divider.Text = "/";

            btn_clear.Text = "Clr";
            btn_beregn.Text = "Beregn";

            txtBox_Regnestykke.Text = "hehe";
            txtBox_Regnestykke.Enabled = false;
        }

        private void btn_num_0_Click(object sender, EventArgs e)
        {
            txtBox_Regnestykke.Text = txtBox_Regnestykke.Text + btn_num_0.Text;
        }

        private void btn_num_1_Click(object sender, EventArgs e)
        {
            txtBox_Regnestykke.Text = txtBox_Regnestykke.Text + btn_num_1.Text;
        }

        private void btn_num_2_Click(object sender, EventArgs e)
        {
            txtBox_Regnestykke.Text = txtBox_Regnestykke.Text + btn_num_2.Text;
        }

        private void btn_num_3_Click(object sender, EventArgs e)
        {
            txtBox_Regnestykke.Text = txtBox_Regnestykke.Text + btn_num_3.Text;
        }

        private void btn_num_4_Click(object sender, EventArgs e)
        {
            txtBox_Regnestykke.Text = txtBox_Regnestykke.Text + btn_num_4.Text;
        }

        private void btn_num_5_Click(object sender, EventArgs e)
        {
            txtBox_Regnestykke.Text = txtBox_Regnestykke.Text + btn_num_5.Text;
        }

        private void btn_num_6_Click(object sender, EventArgs e)
        {
            txtBox_Regnestykke.Text = txtBox_Regnestykke.Text + btn_num_6.Text;
        }

        private void btn_num_7_Click(object sender, EventArgs e)
        {
            txtBox_Regnestykke.Text = txtBox_Regnestykke.Text + btn_num_7.Text;
        }

        private void btn_num_8_Click(object sender, EventArgs e)
        {
            txtBox_Regnestykke.Text = txtBox_Regnestykke.Text + btn_num_8.Text;
        }

        private void btn_num_9_Click(object sender, EventArgs e)
        {
            txtBox_Regnestykke.Text = txtBox_Regnestykke.Text + btn_num_9.Text;
        }

        private void btn_opr_plus_Click(object sender, EventArgs e)
        {
            txtBox_Regnestykke.Text = txtBox_Regnestykke.Text + btn_opr_plus.Text;
        }

        private void btn_opr_minus_Click(object sender, EventArgs e)
        {
            txtBox_Regnestykke.Text = txtBox_Regnestykke.Text + btn_opr_minus.Text;
        }

        private void btn_opr_gange_Click(object sender, EventArgs e)
        {
            txtBox_Regnestykke.Text = txtBox_Regnestykke.Text + btn_opr_gange.Text;
        }

        private void btn_opr_divider_Click(object sender, EventArgs e)
        {
            txtBox_Regnestykke.Text = txtBox_Regnestykke.Text + btn_opr_divider.Text;
        }

        private void btn_clear_Click(object sender, EventArgs e)
        {
            txtBox_Regnestykke.Text = "";
        }

        public void btn_beregn_Click(object sender, EventArgs e)
        {
            Udregning Beregning = new Udregning(txtBox_Regnestykke.Text);
            Beregning.Beregn(txtBox_Regnestykke.Text);
        }
    }

    public class Udregning
    {
        private char Operator;

        public Udregning()
        {
        }

        public void Beregn(string modtagBeregning)
        {
            //der undersøges hvilken matematisk operator der findes i strengen
            if (modtagBeregning.Contains("+"))
            {
                Operator = '+';
            }
            else if (modtagBeregning.Contains("-"))
            {
                Operator = '-';
            }
            else if (modtagBeregning.Contains("/"))
            {
                Operator = '/';
            }
            else if (modtagBeregning.Contains("*"))
            {
                Operator = '*';
            }
        }
    }
}
Avatar billede Syska Mester
13. marts 2006 - 20:37 #15
Du sender en værdi "txtBox_Regnestykke.Text" med til din klasse "public class Udregning", men den klasse indeholder ikke en Contructor som tager imod en "string" som du sender hen til den..... du har kun en default constructor, altså en constructor som ikke tager imod noget, og kun gør så du kan oprette klassen.....

// ouT
Avatar billede Syska Mester
13. marts 2006 - 20:40 #16
I:
public void btn_beregn_Click(object sender, EventArgs e)

Sender du både txtBox_Regnestykke.Text med som argument til din Constructor og Method, bare brug en af delene, det andet er spild af resourcer....
Men bare lav
Udregning Beregning = new Udregning(txtBox_Regnestykke.Text);
om til:
Udregning Beregning = new Udregning();

Så skulle din kode virke, som du har lavet den indtil vidre.

// ouT
Avatar billede ashansen Nybegynder
13. marts 2006 - 22:33 #17
Ahh alletiders :) Point til dig Buzzzz
og Tak for hjælpen til jer alle!
Avatar billede ashansen Nybegynder
13. marts 2006 - 22:33 #18
Ahh alletiders :) Point til dig Buzzzz
og Tak for hjælpen til jer alle!
Avatar billede Syska Mester
13. marts 2006 - 22:50 #19
så lidt....

takker

svar

// ouT
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