C# 如何将对象数据从一个方法传递到另一个方法
我有一个程序,在这个程序中,用户将信息输入到两个单独的文本框中,然后单击一个按钮,此时程序会执行一些操作,并将数据返回到第三个文本框 然后,用户将数据输入另一个文本框并单击第二个按钮。程序从第一个按钮单击方法获取文本框返回数据以及新的输入数据,执行一些工作并将数据返回到多行文本框 我遇到的问题是,一旦程序离开第一个按钮单击方法,返回的数据就会消失,因此第一个按钮单击方法中的数据不会传递给第二个按钮单击方法 我很确定它会这样做,因为对象是在第一个按钮单击方法内部实例化的,而不是在类级别实例化的,因此一旦程序离开该方法,对象就消失了。我试图在类级别实例化该对象,但无法实例化,因为我收到“字段初始值设定项无法引用非静态字段、方法或属性”错误 我已经看过了这个问题的MSDN规范,并理解了它的原因,但是他们给出的解决方法是实例化方法中的对象。所以我又回到了我的起点 我不知道在这里该做什么。下面是我在button click方法中实例化对象的代码:C# 如何将对象数据从一个方法传递到另一个方法,c#,C#,我有一个程序,在这个程序中,用户将信息输入到两个单独的文本框中,然后单击一个按钮,此时程序会执行一些操作,并将数据返回到第三个文本框 然后,用户将数据输入另一个文本框并单击第二个按钮。程序从第一个按钮单击方法获取文本框返回数据以及新的输入数据,执行一些工作并将数据返回到多行文本框 我遇到的问题是,一旦程序离开第一个按钮单击方法,返回的数据就会消失,因此第一个按钮单击方法中的数据不会传递给第二个按钮单击方法 我很确定它会这样做,因为对象是在第一个按钮单击方法内部实例化的,而不是在类级别实例化的,因
private void btnOrderButton_Click(object sender, EventArgs e)
{
numberOfPizzas = int.Parse(this.txtNumberOfPizzaOrdered.Text);
numberOfCokes = int.Parse(this.txtNumberOfCokesOrdered.Text);
PizzaOrder orderObject = new PizzaOrder(numberOfPizzas, numberOfCokes);
this.txtAmountDue.Text = orderObject.TotalAmountDue.ToString("C");
}
private void btnPaymentButton_Click(object sender, EventArgs e)
{
amountDue = double.Parse(this.txtAmountDue.Text);
amountPaid = double.Parse(this.txtAmountPaid.Text);
Payment orderPaymentObject = new Payment(amountDue, amountPaid);
}
数据将消失,因为您正在方法范围内创建临时对象,这意味着它不存在于方法之外 要修复在类级别声明数据成员并像这样使用它的问题,请执行以下操作:
Payment m_orderPaymentObject = null;
private void btnPaymentButton_Click(object sender, EventArgs e)
{
amountDue = double.Parse(this.txtAmountDue.Text);
amountPaid = double.Parse(this.txtAmountPaid.Text);
m_orderPaymentObject = new Payment(amountDue, amountPaid);
}
对所需的任何其他数据对象重复此过程 这是一种方法
class ClassName
{
// available anywhere within the class; remember to instantiate before referencing
private PizzaOrder _order;
private Payment _payment;
private void btnOrderButton_Click(object sender, EventArgs e)
{
numberOfPizzas = int.Parse(this.txtNumberOfPizzaOrdered.Text);
numberOfCokes = int.Parse(this.txtNumberOfCokesOrdered.Text);
_order = new PizzaOrder(numberOfPizzas, numberOfCokes);
this.txtAmountDue.Text = _order.TotalAmountDue.ToString("C");
}
private void btnPaymentButton_Click(object sender, EventArgs e)
{
amountDue = double.Parse(this.txtAmountDue.Text);
amountPaid = double.Parse(this.txtAmountPaid.Text);
_payment = new Payment(amountDue, amountPaid);
}
}
啊,我明白了。我知道你可以用变量,但不知道你可以用对象。酷!非常感谢你!当然,没问题。一步一个脚印……)