从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);
}
}
您只需要在创建对象的方法之外添加对该对象的引用。
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);
}
}