从visual studio 2015表单按钮中的另一种方法访问对象

本文关键字:另一种 方法 访问 对象 按钮 visual studio 2015 表单 | 更新日期: 2023-09-27 18:17:06

我正在为用户设计一个界面,用户可以输入姓名、号码和初始余额来创建帐户。然后允许用户通过一个叫做"带存取款方法的客户"的类提取或存入资金。

我已经成功地完成了帐户创建部分。问题是,当帐户成功完成时,我创建了一个名为cust1的新对象,但是当用户按下按钮应用存款或取款时,无法访问该对象。

的接口

完整的代码:http://pastebin.com/6HHdMLV1

对象声明在这段代码的底部,这是当用户按下帐户创建按钮时的方法。

private void CreateAccountButton_Click(object sender, EventArgs e)
    {
        string fullName = " ";
        int accountNumber = 0;
        double initialBalance = 0.00;
        Boolean validName = false;
        Boolean validAccount = false;
        Boolean validBalance = false;
        if (string.IsNullOrWhiteSpace(AccountNameInput.Text))
        {
            MessageBox.Show("Please enter your full name.", "Error",
            MessageBoxButtons.OKCancel);
        }
        else if(Regex.IsMatch(AccountNameInput.Text, @"^[a-zA-Z ]+$")) 
        {
            if(AccountNameInput.Text.Contains(" "))
            {
                fullName = AccountNameInput.Text;
                validName = true;
            }
            else
            {
                MessageBox.Show("Full name must contain a space.", "Error",
                MessageBoxButtons.OKCancel);
            }
        }
        else
        {
            MessageBox.Show("Name must not contain numbers or special characters.", "Error",
            MessageBoxButtons.OKCancel);
        }
        if (string.IsNullOrWhiteSpace(AccountNumberInput.Text))
        {
            MessageBox.Show("Please enter your account number", "Error",
            MessageBoxButtons.OKCancel);
        }
        else if(Regex.IsMatch(AccountNumberInput.Text, @"^[0-9]+$"))
        {
            accountNumber = Convert.ToInt32(AccountNumberInput.Text);
            validAccount = true;
        }
        else
        {
            MessageBox.Show("Must contain only numbers.", "Error",
            MessageBoxButtons.OKCancel);
        }
        if (string.IsNullOrWhiteSpace(InitialBalanceInput.Text))
        {
            MessageBox.Show("Please enter your initial balance", "Error",
            MessageBoxButtons.OKCancel);
        }
        else if (Regex.IsMatch(AccountNumberInput.Text, @"^[0-9.]+$"))
        {
            initialBalance = Math.Round(Convert.ToDouble(InitialBalanceInput.Text),2);
            validBalance = true;
        }
        else
        {
            MessageBox.Show("Initial balance must contain only numbers and a decimal point.", "Error",
            MessageBoxButtons.OKCancel);
        }
        if(validName == true && validAccount == true && validBalance == true)
        {
            AccountBalanceDisplay.Text = "$" + Convert.ToString(initialBalance);
            Customer cust1 = new Customer(fullName, accountNumber, initialBalance);
        }
    }

这个方法不能访问cust1对象

private void ApplyButton_Click(object sender, EventArgs e)
    {
        double userInput = Convert.ToDouble(AmountInput.Text);
        if (DepositRButton.Checked)
        {
            cust1.Deposit(userInput);
        }
    }

从visual studio 2015表单按钮中的另一种方法访问对象

您只需要在创建对象的方法之外添加对该对象的引用。

    private cust1;
    private void CreateAccountButton_Click(object sender, EventArgs e)
    {
        //Your code
    }

现在你可以替换

Customer cust1 = new Customer(fullName, accountNumber, initialBalance);

cust1 = new Customer(fullName, accountNumber, initialBalance);

假设您需要一个以上的客户,您可能需要使用列表。这样你就可以像刚才那样创建对象并将其添加到列表中。

List<Customer> CustomerList = new List<Customer>();
    private void CreateAccountButton_Click(object sender, EventArgs e)
    {
        //Rest of your code
        if(validName == true && validAccount == true && validBalance == true)
        {
            AccountBalanceDisplay.Text = "$" + Convert.ToString(initialBalance);
            Customer cust1 = new Customer(fullName, accountNumber, initialBalance);
            CustomerList.Add(cust1)
    }

您可以通过客户在列表中的位置访问客户:

private void ApplyButton_Click(object sender, EventArgs e)
{
    double userInput = Convert.ToDouble(AmountInput.Text);
    if (DepositRButton.Checked)
    {
        CustomerList[0].Deposit(userInput);
    }
}