Как получить доступ к переменной из отдельного обработчика событий - PullRequest
0 голосов
/ 13 февраля 2011

Я работал в лаборатории для школы, и все шло гладко, пока я не наткнулся на препятствие. Я должен написать программу, которая запрашивает у пользователя начальные данные продавца (C, D или M) и цену продажи, которую они сделали. Я также должен следить за комиссией, получаемой каждым продавцом, до тех пор, пока я не достигну цели или не выйду из программы.

Когда я нажимаю комиссию за вычисление, она, конечно, должна рассчитывать комиссию (что она и делает), но, поскольку переменные являются уровнем метода (или некоторым более низким уровнем доступа), и я не могу вернуть их, я не могу передайте 2-му методу необходимую ему информацию из переменных "... C".

What the user would hypothetically see if they ran the program

namespace SunshineHotTubs
{
    public partial class FrmSalesCommission : Form
    {
        double cliffS = 0;
        double dinoS = 0;
        double marshaS = 0;

        public FrmSalesCommission()
        {
            InitializeComponent();
        }

        public void btnCalcCommission_Click(object sender, EventArgs e)
        {
            string salesperson = txtInitial.Text;
            double sale = Convert.ToDouble(txtSaleTotal.Text);

            switch(salesperson)
            {
                case "c":
                case "C":
                    cliffS += sale;
                    double cliffC = cliffS * .10;
                    lblCommission.Text = Convert.ToString(cliffC);
                    break;
                case "d":
                case "D":
                    dinoS += sale;
                    double dinoC = dinoS * .10;
                    lblCommission.Text = Convert.ToString(dinoC);
                    break;
                case "m":
                case "M":
                    marshaS += sale;
                    double marshaC = marshaS * .10;
                    lblCommission.Text = Convert.ToString(marshaC);
                    break;
            }
        }

        private void btnDisplayCommission_Click(object sender, EventArgs e)
        {
            MessageBox.Show("Cliff's Commission: " + cliffC + "\n"
                            + "Dino's Commission: " , "Total Commissions");
        }
    }
}

Какой самый простой способ для меня получить информацию, необходимую мне для моего события btnDisplayCommission_Click?

1 Ответ

1 голос
/ 13 февраля 2011

Вы уже объявили переменные на уровне класса:

double cliffC = 0;
double dinoC = 0;
double marshaC = 0;

Просто замените это:

double cliffC = cliffS * .10;
double dinoC = dinoS * .10;
double marshaC = marshaS * .10;

Об этом:

cliffC = cliffS * .10;
dinoC = dinoS * .10;
marshaC = marshaS * .10;

Обновление

Также вы можете просто рассчитать значения в методе btnDisplayCommission_Click:

MessageBox.Show("Cliff's Commission: " + cliffS * .10 + "\n"
                + "Dino's Commission: " , "Total Commissions");
...