Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 与c中的click事件方法不同的类中的调用方法#_C#_Windows_Forms_Class_Call - Fatal编程技术网

C# 与c中的click事件方法不同的类中的调用方法#

C# 与c中的click事件方法不同的类中的调用方法#,c#,windows,forms,class,call,C#,Windows,Forms,Class,Call,我试图调用方法“BeräknaLön”,它位于click事件方法之外的另一个类中。click事件方法位于分部类“PersonalRegister”中,我打算调用的方法位于类“Säljare”中。 提前谢谢 //索林 表格1.cs: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Lin

我试图调用方法“BeräknaLön”,它位于click事件方法之外的另一个类中。click事件方法位于分部类“PersonalRegister”中,我打算调用的方法位于类“Säljare”中。 提前谢谢 //索林

表格1.cs:

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

namespace PersonalRegister
{
    public partial class Personalregister : Form
    {
        //Deklarering av lista över anställda
        List<Anställd> anställda = new List<Anställd>();
        Anställd medarbetare;

        public Personalregister()
        {
            InitializeComponent();
        }
        private void Btn_reg_försäljare_Click(object sender, EventArgs e)
        {
            //Deklarera variabler för namn, provision samt försäljning och tilldela värden
            //från textrutor
            string n = tbx_säljare_namn.Text;
            double p = Convert.ToDouble(tbx_säljare_provision.Text);
            double f = Convert.ToDouble(tbx_säljare_försäljning.Text);

            tbxml_register.AppendText(" " + n + " (Säljare) \r\n");

            Säljare.BeräknaLön(); //Error message suggests an "Object reference" is required here

        }
        private void Btn_reg_arbetspass_Click(object sender, EventArgs e)
        {
            string n = tbx_Konsult_namn.Text;
            double t = Convert.ToDouble(tbx_Konsult_timlön.Text);
            double a = Convert.ToDouble(tbx_Konsult_timmar.Text);

            tbxml_register.AppendText(" " + n + " (Konsult) \r\n");
        }
        private void Btn_reg_mLön_Click(object sender, EventArgs e)
        {
            string n = tbx_kontorist_namn.Text;
            double m = Convert.ToDouble(tbx_kontorist_mLön.Text);

            tbxml_register.AppendText(" " + n + " (Kontorist) \r\n");
        }
        private void Btn_beräkna_löner_Click(object sender, EventArgs e)
        {

        }
    }
}

由于
BeräknaLön
是一种实例方法(与
静态方法相反),因此需要先创建
Säljare
类的实例,然后才能调用它,这正是错误消息告诉您的

例如:

private void Btn_reg_försäljare_Click(object sender, EventArgs e)
{
    string name = tbx_säljare_namn.Text;
    double provision = Convert.ToDouble(tbx_säljare_provision.Text);
    double sales = Convert.ToDouble(tbx_säljare_försäljning.Text);

    tbxml_register.AppendText(" " + n + " (Säljare) \r\n");

    // Create a new instance of our class
    Säljare seller = new Säljare(name, provision, sales);

    // Now we can call the method on the instance we just created
    double salary = seller.BeräknaLön();
}

Säljare
是一个非静态类,因此必须首先像这样创建它的对象:
Säljare saljare=newsäljare()
private void Btn_reg_försäljare_Click(object sender, EventArgs e)
{
    string name = tbx_säljare_namn.Text;
    double provision = Convert.ToDouble(tbx_säljare_provision.Text);
    double sales = Convert.ToDouble(tbx_säljare_försäljning.Text);

    tbxml_register.AppendText(" " + n + " (Säljare) \r\n");

    // Create a new instance of our class
    Säljare seller = new Säljare(name, provision, sales);

    // Now we can call the method on the instance we just created
    double salary = seller.BeräknaLön();
}