passa una variabile come parametro al costruttore c # [chiuso]

-4

passa una variabile come parametro al costruttore in quanto voglio cambiare il valore della variabile con il valore modificabile

sono nuovo di c # in modo che io cerchi di implementare una cosa in molti modi ho fatto quello che voglio fare usando (funzione) e lavorato

namespace testConstructors
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        static void Persons(string DepartmentName)
        {
          System.Windows.Forms.MessageBox.Show("Your Department is " + DepartmentName + " Fixed salary = 1500");
        }

        private void btnShowTotalSalary_Click(object sender, EventArgs e)
        {
            int fixedSalary = 1500;
            if (rbtHR.Checked)
            {
                lblTotalSalary.Text= Convert.ToString(fixedSalary + 200);
                Persons("HR");
            }
            if (rbtDevelopers.Checked)
            {
                lblTotalSalary.Text= Convert.ToString(fixedSalary + 8000);
                Persons("developer");
            }
            if (rbtTesters.Checked)
            {
                lblTotalSalary.Text = Convert.ToString(fixedSalary + 2);
                Persons("tester");
            }
        }

        private void rbtHR_CheckedChanged(object sender, EventArgs e)
        {

        }
    }
}

ma quando voglio usare le classi e prendere una classe e aggiungere un acistruttore ad esso e passare il valore attraverso di esso come questo codice mostrato, ha funzionato ma non è cambiato in tempo reale cambia il pulsante di scelta come fatto dal primo codice.

quindi voglio sapere che questa cosa può essere fatta dal costruttore o no

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

        private void btnShowTotalSalary_Click(object sender, EventArgs e)
        {
            string DeptName;
            Persons p2 = new Persons("HR");
            if (rbtHR.Checked)
            {
                lblTotalSalary.Text= Convert.ToString(p2.fixedSalary + 200);
                DeptName = "HR";
            }
            if (rbtDevelopers.Checked)
            {
                lblTotalSalary.Text= Convert.ToString(p2.fixedSalary + 8000);
                DeptName = "Developers";
            }
            if (rbtTesters.Checked)
            {
                lblTotalSalary.Text = Convert.ToString(p2.fixedSalary + 2);
                DeptName = "Testers";
            }
        }

        private void rbtHR_CheckedChanged(object sender, EventArgs e)
        {

        }
    }


    class Persons
    {
        public int fixedSalary;
        public Persons(string DepartmentName)
        {
            fixedSalary = 1500;
            System.Windows.Forms.MessageBox.Show("Your Department is " + DepartmentName + " Fixed salary = 1500");
        }
    }
}
    
posta ramyMorad 11.04.2015 - 12:01
fonte

1 risposta

0

Invece di passare il nome del reparto con codice hardcoded al costruttore della classe Person , passa la variabile DeptName inizializzata a Person class.

    private void btnShowTotalSalary_Click(object sender, EventArgs e)
    {
        string DeptName = "Unknown Department";

        if (rbtHR.Checked)
        {
            lblTotalSalary.Text= Convert.ToString(p2.fixedSalary + 200);
            DeptName = "HR";
        }
        if (rbtDevelopers.Checked)
        {
            lblTotalSalary.Text= Convert.ToString(p2.fixedSalary + 8000);
            DeptName = "Developers";
        }
        if (rbtTesters.Checked)
        {
            lblTotalSalary.Text = Convert.ToString(p2.fixedSalary + 2);
            DeptName = "Testers";
        }

        Persons p2 = new Persons(DeptName);
    }
    
risposta data 11.04.2015 - 12:34
fonte

Leggi altre domande sui tag