问题描述
|
我正在尝试编写简单的成员资格类代码。第一类的名称是Customer,它具有从Customer类继承的其他类,例如Silver_Customer,Gold_Customer。
我在简单的Windows应用程序中使用这些类:
public Customer customer;
public Form_MURAT_TURAN()
{
InitializeComponent();
}
private void Form1_Load(object sender,EventArgs e)
{
Product p1 = new Product(\"Blouse\",152.80);
Product p2 = new Product(\"T-Shirt\",50.25);
.....
lbProducts.Items.Add(p1);
lbProducts.Items.Add(p2);
.....
}
private void btnCustomer_Click(object sender,EventArgs e)
{
Customer customer = new Standard_Customer(txtName.Text,txtSurname.Text,0);
customer.Name = \"Mark 1\";
customer.TotalAmount = 5;
gbCustomer.Enabled = false;
gbProduct.Enabled = true;
set_info(customer.customerType(),customer.Name + \" \" + customer.Surname,customer.TotalAmount);
}
private void btnAddToBasket_Click(object sender,EventArgs e)
{
customer.Name = \"Mark 2\";
}
除btnAddToBasket_Click方法外,其他所有方法都工作正常。 customer.Name = \“标记2 \”;行给我“ 1”错误,但customer.Name = \“ Mark 1 \”行有效。
解决方法
在
btnCustomer_Click
中,您未设置全局customer
对象。您正在设置它的本地版本。更改您的代码,如下所示:
private void btnCustomer_Click(object sender,EventArgs e)
{
customer = new Standard_Customer(txtName.Text,txtSurname.Text,0);
, 为什么不尝试:
private void btnCustomer_Click(object sender,EventArgs e)
{
this.customer = new Standard_Customer(txtName.Text,0);
customer.Name = \"Mark 1\";
customer.TotalAmount = 5;
gbCustomer.Enabled = false;
gbProduct.Enabled = true;
set_info(customer.customerType(),customer.Name + \" \" + customer.Surname,customer.TotalAmount);
}
创建新客户时,尝试使用this.customer
。